Python 元组tuple、 列表list、 字典dict、集合set、迭代器、生成器
一、元组: 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
Python 元组tuple、 列表list、 字典dict、集合set、迭代器、生成器的更多相关文章
- python-day3 元组(tuple),列表(list),字典(dict)
1.元组 tuple 有序数据,元组数据不可更改,若元组中有列表,可更改元组中的列表值里的值 元组中以","分开,若只有一个值就不是元组 包含各种数据类型 索引取值:t(2,0.0 ...
- Python元组、列表、字典、集合
1. 元组 元组由不同元素组成,每个元素可以存储不同类型的数据,元组是有序的,元组创建后不能再做任何修改. 元组的创建: tuple = ('a','b','c','d') 如果创建的元组只有1个元素 ...
- Python元组,列表,字典,集合
1.元组 元组是有序的,只有index和count两种方法,一看到元组,就提醒是不可更改的 names = ('wll', 'ly', 'jxx', 'syq') (1)index方法 print(n ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- [转载]Python 元组、列表、字典、文件
python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...
- python开发技巧---列表、字典、集合值的过滤
主要学习列表,字典,集合表达式的应用: 列表的解析式: 生成一个随机列表: In [4]: datalist = [randint(-10,10) for _ in range(10)] In [5] ...
- Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)
Python的变量和数据类型 1 .python的变量是不须要事先定义数据类型的.能够动态的改变 2. Python其中一切皆对象,变量也是一个对象,有自己的属性和方法 我们能够通过 来查看变量的类型 ...
- python语言(二)列表、字典、集合、文件读写、关系测试
1.列表 list 代码 s = '王宇建,苏红,邹存才...' # 列表 数字 list l = ['王宇建','苏红','邹存才'] # 一维数组 二维数组 三维数组 # 0 1 2 # 索引 ...
- 06-Python元组,列表,字典,集合数据结构
一.简介 数据结构是我们用来处理一些数据的结构,用来存储一系列的相关数据. 在python中,有列表,元组,字典和集合四种内建的数据结构. 二.列表 用于存储任意数目.任意类型的数据集合.列表是内置可 ...
- Python元组、列表、字典
```python>>> help(tuple) Help on class tuple in module __builtin__: class tuple(object) │ t ...
随机推荐
- (unsigned)short溢出后隐式转换为int
同学被面试官问到一个细节中的细节,虽然个人觉得意义不大,但还是好奇并在和同学一起实验后搞清楚了,记录一下 如下: int main() { unsigned short a = 65535, b = ...
- 前端js下载excel
// 1.文件流下载文件: export function axiosPostExport(url, data, fileName, suffix = '.xlsx') { url = get ...
- ABAP 拆批拣货交货bapi以及实例
使用函数 BAPI_OUTB_DELIVERY_CHANGE:拆批bapi WS_DELIVERY_UPDATE:拣货函数 BAPI_OUTB_DELIVERY_CONFIRM_DEC:过账函数 样例 ...
- csp201503-2(数字排序)
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所 ...
- Windows10使用VMware安装centos
系统环境: Windows 10 安装步骤: 1.下载centos http://mirrors.aliyun.com/centos/ 2.使用VMware安装centos 3.配置网络 $ cd / ...
- Django路由重定向
路由重定向又称HTTP协议重定向,也可以称为网页跳转,它对应的HTTP状态码为301.302.303.307.308. 网页重定向就是在浏览器访问某个网页的时候,这个网页不提供响应内容,而是自动跳转到 ...
- JavaSE——封装
封装概述 是面向对象三大特征之一(封装,继承,多态) 对象代表什么,就得封装对应的数据,并提供数据对应的行为 封装代码实现 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来 ...
- VSCode 设置启用终端执行yarn
如果你的vscode终端不支持 yarn run * 的命令你可以新建终端执行:get-ExecutionPolicy执行结果为:RemoteSigned 表示为禁用状态. 执行:set-Execut ...
- 转发-》c++ stl multimap基本操作使用技巧详细介绍
c++ stl multimap基本操作使用技巧详细介绍 C++ stl Multimap 和C++ stl map 很相似,但是MultiMap允许重复的元素. C++ stl Multima ...
- CompletableFuture事务问题
前段时间写了关于CompletableFuture的使用博客,CompletableFuture使用方法详细说明 和 CompletableFuture的thenCompose使用具体说明. 但在实际 ...