2.列表字符串字典元组集合

list:
增:list.append("str") 追加str到list最后
插入:list.insert(num,"str") 在list的num位置插入str
修改:list[num] = "str" 把list的第num位置改为str
把另一个列表元素添加进来: list.extend(list2) #list = [list[0],list[1],...list[-1],list2[0],list2[1]]

删:
(1)list.remove("str") 删除list列表中str的元素
(2)del list[num] 删除list列表中位置为num的元素
(3)list.pop() 弹出list的最后一个元素,并把最后一个元素返回,这时可以用一个变量接收,如:
str = list.pop() list弹出最后一个元素,并赋值给str
如果带下标,如list.pop(num) list弹出num位置的元素,并返回
(4)list.clear() 清空list中所有内容


num = list.index("str") list查找一个值为str的元素,并将下标返回,用于查找已知元素的位置
str = list[num] 把list中num位置的元素返回,查找用于已知位置的元素的值

统计
num = list.count("str") 统计list中值为str的元素个数

排序
list.reverse() 反转list中元素的顺序
list.sort() 排序

设定步长切片
list[0:-1:2]设定步长为2的list切片,前面下标可以省略,但是冒号不能省略list[::2]

浅复制
list2 = list.copy() list复制一份至list2,浅复制指的是list内部元素是列表或者可迭代对象不复制,list和list2的可迭代对象都指向同一元素,list修改这个可迭代对象,list2也修改
list2 = list[:] 这样也可以实现浅拷贝
深复制
import copy
list2 = copy.deepcopy(list) 完全复制一份list,两个列表完全独立
元组(tuple)
元组不可变,两个方法:count 和 index
for i in enumerate(list) #返回i是一个元组(下标,值)
for index, item in enumerate(list,start=0): #这句连同下标一块取得,enumerate取得下标,把下标赋给变量index,方便后续操作,start为起始计数下标,默认为0,可以省略
start=1时,index从1开始计数

字符串处理
str.capitalize() str首字母大写
str.count("char") 统计str中char出现的次数
str.endswith("char") 判断str是否以char结尾,返回一个布尔值
str.expandtabs(tabsize=30) str内有\t转义字符,用后面的参数指定这个\t代表的空格数,一般用于格式化字符串
★str = "my name is {name},i am {age} years old."
str.format(name="lili",age=12) 格式化字符串
str.format_map({"name":"lili","age":12}) 用字典格式化字符串
#上面这两个都输出为 my name is lili,i am 12 years old.
str.isalnum() str是否为字母数字,返回布尔值
str.isalpha() str是否为纯英文字符(包含大小写),返回布尔值
str.isdecimal() str是否为十进制数字
★str.isdigit() str是否为整数
str.isidentifier() str是否是一个合法的变量名
str.islower() str是否为小写
str.isnumeric() str是否为数字(包括罗马数字和汉字数字)
str.isspace() str是否为空格
str.istitle() str是否为title(每个单词首字母大写)
str.isupper() str是否为大写
★sep.join(seq) sep:分隔符 seq:要连接的元素序列\字符串\列表\元组\字典
以sep作为分隔符,将seq元素合并成一个字符串,并返回这个字符串
如:str = "=".join("asdf")
print(str) #输出为a=s=d=f
位置:
str.center(50,"-") 留出50个位置,"-"中把str的字符串放在中间
str.ljust(50,"*") 留出50个位置,"*"中把str的字符串放在左边
str.rjust(50,"*") 留出50个位置,"*"中把str的字符串放在右边
str.zfill(50) 留出50个位置,str之前用0填充
大小写:
str.lower() str大写变小写
str.upper() str小写变大写
str.swapcase() str大小写交换
str.title() str变为每个单词首字母大写
去空白:
str.strip() 去掉str两边的空白
str.lstrip() 去掉str左边的空白
str.rstrip() 去掉str右边的空白
替换
str.replace("old_char","new_char",num) 把str中的元素替换成另一个元素,num是一个数字,可省略,代表替换几个
查找:
str.find(char) 在str中查找最左边char出现的位置,返回一个index
str.rfind("char") 在str中查找最右边出现char的位置,返回一个index
分割:
str.split() 把str用空格分割,返回一个列表.无参数是默认用空格,有参数可以写成str.split("b"),注意,当"b"为分隔符的时候,返回的列表中不会再有"b"
str.splitlines() 按换行分割字符串,返回一个列表,一般windows和linux用不同的换行符,这个可以自动识别并分割

字典(dict)
dict = {key:value, key1:value}
特性:1.无序 2.key唯一
查找
dict[key] 查找dict中键为key的元素,返回key对应的值(有key就查找,没有key就报错,所以得确定有这个key,不能确定就不用这个方法)
dict.get(key) 查找dict中键为key的元素,返回key对应的值(有key就查找,没有key就返回none,一般用这个方法)
修改
dict[key] = new_value 把dict中key对应的值修改为new_value
添加
dict[new_key] = new_value #dict中添加了一条键值对(修改和添加格式一样,dict中本来有key就是修改,没有就是添加)
删除
del dict 删除整个dict
del dict[key] 删除dict的键为key元素
dict.pop(key) 弹出dict的键为key的元素并返回key对应的值
判断
key in dict 判断dict中是否有key这个元素,返回一个布尔值
字典嵌套操作
dict[key][key][index] 字典查找用key,list用index
其他
dict.values() 返回dict中所有值得列表,不过有dict_values前缀,不能直接使用,可以使用list(dict.values())转换成列表
dict.keys() 同上,不过返回的是key的列表,前缀是dict_keys
dict.items() 同上,不过返回的是(key:value)元组组成的列表,前缀是dict_items
dict.setdefault(key,value) 在dict中查找key,dict有这个key,就返回这个key对应的值,如果没有这个key,就添加这个这个键值对,并返回这个value
dict.update(dict2) 把dict2合并进dict(dict本来有的key的值会被dict2内相同的key的值替代
d = dict.fromkeys([6,7,8], value) 用dict.fromkeys初始化一个键为参数[6,7,8],值为参数value的字典,并用变量名d接收
遍历字典典型用法
for i in dict:
print(i,dict[i]) 这个效率高

for k,v in dict.items():
print(k,v)
============================================================
集合(set)
创建集合可以使用{}或set(),但是如果创建空集合只能用set(),因为{}用来创建空字典
s1 = {10,20,30}
s2 = set("abcdefg")
s3 = set() 空集合
集合特性 1.去重 2.无序
集合里不能放可变对象,即不能放列表,字典,可以放元组
增加
s1.add("a") 把a添加到集合s1里,add只能增加单一数据.因为集合不能重复,如果原集合有这个数据,那么追加后集合该数据还是1个
s1.update([1,2,3]) 把数据序列添加到s1中去,update只能添加数据序列
删除
s1.remove(10) 从s1中删除10这个数据,如果数据不存在则报错
s1.dicard(10) 从s1中删除10这个数据,如果数据不存在也不报错
s1.pop() 随机删除s1中一个数据,并将这个数据返回
集合的运算:
运算符:(&)交集 (|)并集 (-)补集 (^)对称补集 (>)超集 (<)子集 (==)相同 (!=)不同 (in) (not in)
s1 = {1,2,3}
s2 = {2,3,4}
交集(&):生成两个集合的交集
s3 = s1 & s2 # s3 = {2,3}
并集(|):生成两个集合的并集
s3 = s1 | s2 # s3 = {1,2,3,4}
补集(-):生成两个集合的补集,把s1中两个集合相同的元素去掉
s3 = s1 - s2 # s3 = {1}
对称补集(^):生成两个集合的对称补集:(s1-s2)|(s2-s1),等于说两个集合中对方没有的元素的并集
s3 = s1 ^ s2 # s3 = {1,4}
子集(<)判断一个集合是否为另一个集合的子集
{1,2} < {1,2,3} #True
超集(>)判断一个集合是否为另一个集合的超集
{1,2,3} > {1,2} # True
判断是否有交集:s1.isdisjoint(s2)

可用于序列(list,tuple,str)的内置函数:
len(x) 返回元素个数
max(x) 返回最大值
min(x) 返回最小值
sum(x) 返回总和
any(x) 对所有元素进行真值测试,有一个True,结果为True
all(x) 对所有元素进行真值测试,所有为True,结果才为True
以上字典也能用
reversed, sorted
==============================================
容器类型转换
1.tuple():可以把列表和集合转换元组
2.list():可以把元组和集合转换成列表
3.set():可以把元组和列表转换成集合,注意set不可重复,原元组和列表转换后将去重
================================================
推导式:
1.列表推导式:用表达式创建一个有规律的列表或控制一个有规律的列表,有助于减少代码
list1 = [i for i in range(0,10,2)]
list2 = [i for i in range(10) if i % 2 == 0]
list3 = [多for循环列表推导式,感觉不利于阅读,强制忘记-_-!]
2.字典推导式:快速合并列表为字典或提取字典中目标数据
dict1 = {i: i**2 for i in range(1,5)}
dict2 = {list1[i]: list2[i] for i in range(len(list1))} 合并两个列表组成字典
注意:1.如果两个列表数据个数相同,len统计任意一个.2.如果数据个数不同,len统计多的会报错,统计少的不报错
dict3 = {key: value for key, value in dict.items() if value >=200} 提取字典中value>=200的元素组成字典
3.集合推导式:用的少

原文地址:https://www.cnblogs.com/huohu121/p/12231332.html

时间: 2024-10-05 13:06:55

2.列表字符串字典元组集合的相关文章

【八】列表、字典、集合、元组间的数据类型转换总结

一:列表:list[] 增 In [125]: a=[] #新增方法1 In [126]: a.append("hello") In [127]: a Out[127]: ['hello'] #新增方法2 In [128]: a.insert(0,"huahua") In [129]: a Out[129]: ['huahua', 'hello'] 删 In [131]: a Out[131]: ['huahua', 'hello'] #删除方法1 In [132]

2.1 如何在列表,字典,集合中根据条件帅选数据

#!/usr/bin/env python # -*- coding:utf-8 -*- #2.1 如何在列表,字典,集合中根据天剑筛选数据 # 帅选列表中符合条件的项 data = [1,5,-3,-2,6,8,0,9] res = [] for x in data: if x >=0: res.append(x) # print(res) #2 from random import randint data = [randint(-10,10) for _ in xrange(10)] m

python进阶学习chapter02(列表、字典、集合操作)

如何在列表.字典.集合中筛选数据 列表(元组)的重命名 词频统计的实现 字典的排序 寻找多个字典的公共键 如何让字典保持有序 如何保持历史纪录(使用deque队列) 一.如何在列表.字典.集合中筛选数据 问题引入: 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数 字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对 集合:{2,3,8,6,7,5} 找出所有被3整除的数 列表: #方法一,迭代 data=[1,5,-4,-6,0,7,9] res=[] fo

Python 元组、列表、字典和集合

元组 Python中的元组(Tuple)类似于Java中的数组,一旦创建了一个 tuple,就不能以任何方式改变它.这点与Python中的字符串类似,所以我们说元组和字符串都是不可变的序列.元组也支持索引和分片操作. 定义一个元组使用一对小(圆)括号" ( ) ". #定义一个元组 tuple1 = (1, 2, '3', 4, '5') # 定义了一个元组之后就无法再添加或修改元组中的元素 print tuple1[0] # 元组的元素都有确定的顺序.元组的索引也是以0为基点的 pr

day5 元组、列表、字典和集合

列表是用来存放多个值[]内用逗号分隔,列表内元素屋类型限制但凡能用for取出的一个个值的,就能把它放入list列表 补充for循环range()和切片用法相同取头不取尾,步长range用来打印索引和索引对应的值enumerate(列表/字符串)既要索引又要值使用enumerate()更方便 排序.sort() 正序排列.reverse() 倒序排列.sort(reverse = Ture) 倒序排列 列表比较只能同类型直接比较大小,对有索引的值的比较,是按照位置一一对应的 增.extend(列表

列表 字典 元组 集合

列表: 1.用途:记录多个值(同种属性) 2.定义方式:在[]内用逗号分隔开多个任意类型的值 类型转换 定义列表实际上是借用list()方法生成列表,可以将其他类型转化为列表,如字符串元组,字典集合 3.常用操作+内置的方法 1.按索引存取值(正向存取+反向存取):即可存也可以取 使用下标索引来访问列表中的值 2.切片()列表中的截取与字符串类似,按照索引 3.长度 使用len()方法获取列表长度,参数为列表 4.成员运算in和not in通过返回值判断元素是否在列表中, 5.追加&插入使用ap

【转】Python元祖,列表,字典,集合的比较

http://rmingwang.com/python-tuple-list-dict-set.html 1. 元组         可以包含不同类型的对象,但是是不可变的,不可以在增减元素,用()来定义.元组的操作: tuple(obj),切片,in,for in,del,cmp,len,max,min #定义一个元组 tuple1 =() tuple1 = tuple({1,2,3,4,5,'6'}) tuple1 = (1, 2, '3', 4, '5') # 定义了一个元组之后就无法再添

Python基础2 列表、字典、集合

本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Alex' >>> names[2] 'Eric' >>> names[-1] 'Eric'

字符串、元组、列表、字典、集合-数据类型篇

本章内容 字符串 元组 列表 字典 集合 一.字符串 字符串的使用需要用引号括起来,例如:name = "Lyon":这里name就是一个变量名,而引号里面的 Lyon 则就是变量,该值的类型为 " str" 类型.这就是字符串! 当然如上使用的是双引号,这里其实还可以使用单引号 " 'Lyon' " 以及三引号 " '''Lyon''' " (或者是"""Lyon""&quo