一、元组:  tuple

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

tup2 = (111, 22, 33, 444, 55, 6, 77 )
for x in (tup2): #遍历
print(x) list2 = [111, 22, 33, 444, 55, 6, 77 ]
tup2 = tuple(list2) #将列表转变为元组

二、列表:list

遍历列表:

#遍历列表
list1 = [1, 2, 3, 6, 5, 4]
for x in list1:
print(x, end=",") # 运行结果:1,2,3,6,5,4, for i in range(len(list1)):
print("序号:", i, " 值:", list1[i]) for i, val in enumerate(list1):
print("序号:", i, " 值:", val) for i in list1:
idx = list1.index(i) # 索引
if (idx < len(list1) - 1):
print(i, '---------', list1[idx + 1])

三、字典:dict

dict = {'name': 'pp', 'age': 20, "gender": "man"}
dict["name"] = "sss" for key in dict.keys(): # 遍历字典。字典的 keys() 方法以列表返回可遍历的(键) 元组数组。
print(key) for val in dict.values(): # 遍历字典。字典的 values() 方法以列表返回可遍历的(值) 元组数组。
print(val) for key, val in dict.items(): # 遍历字典。字典的 items() 方法以列表返回可遍历的(键, 值) 元组数组。
print(key, " : ", val)

字典的多级嵌套:

citys={
'北京':{
'朝阳':['国贸','CBD','天阶'],
'海淀':['圆明园','苏州街','中关村','北京大学'],
'昌平':['沙河','南口','小汤山',],
'怀柔':['桃花','梅花','大山']
},
'河北':{
'石家庄':['石家庄A','石家庄B','石家庄C'],
'张家口':['张家口A','张家口B','张家口C']
}
}
for i in citys['北京']:
print(i) for i in citys['北京']['海淀']:
print(i)

四、集合:set

集合(set)是一个无序不重复元素的序列。 基本功能是进行成员关系测试和删除重复元素。

集合无序,元素不能重复。

去重:将列表转化为集合,集合再转化为列表,就可以去重。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉 {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'} # 成员测试
if('Rose' in student) :
print('Rose 在集合中')
else :
print('Rose 不在集合中')
#Rose 在集合中
从一个大集合里,去除一个小集合
set000 = set("123456789")
set1 = set(["2", "3", "5", "5", "6", "0"])
print(set000 - set1)
#{'7', '8', '9', '1', '4'}

元组 => 列表,字符串 <=> 列表的转换

# 元组 => 列表
tuple1 = (123, 'haha', 'she', 'hehe')
list1 = list(tuple1) #将元组转换为列表。运行结果:[123, 'haha', 'she', 'hehe']
print(list1)
# 字符串 <=> 列表
str1 = '天地玄黄宇宙洪荒'
list1 = list(str1) # 字符串转为列表
str2 = "".join(list1) # 列表转为字符串
print(str2) str1 = '天地,玄黄,宇宙,洪荒'
list1 = str1.split(",") # 字符串转为列表
print(list1) str1 = '天地玄黄宇宙洪荒'
str2 = str1[::-1] # 字符串倒序
print(str2)

五、迭代器、生成器

迭代器有两个基本的方法:iter() 和 next()

import sys  # 引入 sys 模块

list = [1, 2, 3, 4]
it = iter(list) # 创建迭代器对象 while True:
try:
print(next(it))
except StopIteration:
sys.exit()

使用了 yield 的函数被称为生成器(generator)。  跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作

import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True:
try:
print(next(f), end=" ")
except StopIteration:
sys.exit()

六、Map,Filter,Reduce

1.Map 会将一个函数映射到一个输入列表的所有元素上(可以同时对list里的所有元素进行操作,并以列表方式给出返回值。)

2. filter 过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表。  (可以用来过滤原有的list,并把过滤结果放进新的list里。)

3. 当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数。(可以对列表顺序执行算术运算。)

参考文献

https://www.cnblogs.com/qq21270/p/7872824.html

最新文章

  1. Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。
  2. Scrum Guide - Scrum指南中文版
  3. NodeJs并发异步的回调处理
  4. TCP SYN扫描学习笔记
  5. mfc MemoryAdressRead
  6. MVC的自定义动作过滤器(一)
  7. Maven_非法字符: &#39;\ufeff&#39; 解决方案
  8. Nginx学习笔记(三) Nginx基本数据结构
  9. Linux中启动和停止jar包的运行
  10. 生成arff文件,csv转为arff
  11. getParamValues()
  12. 【Linux/Ubuntu学习4】ubuntu 下面安装 vim 的问题
  13. SQL 查询的执行过程
  14. CoreCLR文档翻译 - GC的设计
  15. eclipse中svn插件的安装和tortoiseSVN的安装
  16. 容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?
  17. BZOJ_1875_[SDOI2009]HH去散步_矩阵乘法
  18. javascript 模拟日历
  19. java.lang.NoClassDefFoundError: com/gexin/rp/sdk/exceptions/RequestException解决方法
  20. MFC程序显示控制台输出

热门文章

  1. C语言学习--动态内存分配(未完待续)
  2. 死磕rmi之 RegistryImpl
  3. 将python2.7项目转为Python3问题记录
  4. BOOK01:《过目不忘的读书法》
  5. 你不能只会flex居中布局,精制动画讲解所有flex布局方式!通俗易懂纯干货教程!...
  6. Vue CLI 2内置框架webpack框架结构解析
  7. vue中的Swiper使用slideTo提示no function
  8. (jmeter笔记) websocket接口测试
  9. ETCD 实现服务发现讲解
  10. Jest - Testing Asynchronous