赞
踩
列表和元组的主要区别如下:
testList = [4,2,3,1,4]
print("遍历list:",end='')
for items in testList:
print(items,end=' ')
print()
print("遍历tuple:",end='')
testTuple = (5,2,1,3,4)
for items in testTuple:
print(items,end=' ')
print()
print("遍历dict:",end='')
testDict = {'a':1,'b':2}
for key,value in testDict.items():
print(key,value,end=' ')
print()
print('遍历set:',end='')
testSet = {12,4,6,5}
for items in testSet:
print(items,end=' ')
输出如下所示:
遍历list:4 2 3 1 4
遍历tuple:5 2 1 3 4
遍历dict:a 1 b 2
遍历set:4 12 5 6
#两个列表转集合,去重
list1 = [6,7,7,8,8,9]
set1 = set(list1)
print(set1)
输出如下所示:
{8, 9, 6, 7}
#两个列表转字典
list1 = ["key1","key2","key3"]
list2 = ["1","2","3"]
dict1 = dict(zip(list1,list2))
print(dict1)
输出如下所示:
{'key1': '1', 'key2': '2', 'key3': '3'}
#嵌套列表转字典
list3 = [["key1","valu1"],["key2",'value2'],['key3','value3']]
dict1 = dict(list3)
print(dict1)
输出如下所示:
{'key1': 'valu1', 'key2': 'value2', 'key3': 'value3'}
#列表、元组转字符串
list1 = ['s','a','b']
str1 = " ".join(list1)
print(str1)
tup1 = ('b','t','u')
str2 = "-".join(tup1)
print(str2)
输出如下所示:
s a b
b-t-u
dic1 = {'a':1,"b":2}
str1 = str(dic1)
print(type(str1))
print(str1)
输出如下所示:
<class 'str'>
{'a': 1, 'b': 2}
#字典key和value互相转换
dic2 = {"a":1,"b":2}
dic3 = {value:key for key,value in dic2.items()}
print(dic3)
输出如下所示:
{1: 'a', 2: 'b'}
#字符串转换为列表
s = 'dstewsg'
list1 = list(s)
print(list1)
输出如下所示:
['d', 's', 't', 'e', 'w', 's', 'g']
#字符串转元组
s = "ugjhaga;w"
tu1 = tuple(s)
print(tu1)
输出如下所示:
('u', 'g', 'j', 'h', 'a', 'g', 'a', ';', 'w')
#字符串转集合
dic2 = eval("{'a':1,'age':2}")
print(dic2)
输出如下所示:
{'a': 1, 'age': 2}
#切分字符串
a = 'a b c'
a = a.split(' ')
print(a)
输出如下所示:
['a', 'b', 'c']
#利用set中的元素不可重复性来去重
elements = ['a','b','e','c','b','d','a','c','f']
e = list(set(elements))
print(e)
输出如下所示:
['d', 'c', 'b', 'a', 'f', 'e']
要保持列表元素的原来顺序,可以利用list类的sort方法
#利用list的sort方法保持列表原来顺序
e.sort(key=elements.index)
print(e)
输出如下所示:
['a', 'b', 'e', 'c', 'd', 'f']
#使用字典的方式
#利用了字典的键的唯一性
elements = ['a','b','e','c','b','d','a','c','f']
e = list({}.fromkeys(elements).keys())
print(e)
python函数dict.fromkey(seq,[,value])用于创建一个新字典以序列seq中元素做字典的键,value为字典所有键对应的初始值
#python函数dict.fromkey(seq,[,value])用于创建一个新字典
#以序列seq中元素做字典的键,value为字典所有键对应的初始值
seq = ['a','b','c']
dict1 = dict.fromkeys(seq,[9,4,3])
print(dict1)
输出如下所示:
{'a': [9, 4, 3], 'b': [9, 4, 3], 'c': [9, 4, 3]}
#方式三:列表推导的方式
elements = ['a','b','e','c','b','d','a','c','f']
e = []
for i in elements:
if not i in e:
e.append(i)
print(e)
以上代码也可以使用列表生成式简写成
#以上代码也可以使用列表生成式简写成
elements = ['a','b','e','c','b','d','a','c','f']
e = []
[e.append(i) for i in elements if i not in e]
print(e)
#reduce函数
from functools import reduce
# reduce函数的定义:
# reduce(function, sequence[, initial]) -> value
# function参数是一个有两个参数的函数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。
elements = ['a','b','e','c','b','d','a','c','f']
print([[]]+elements) #[[], 'a', 'b', 'e', 'c', 'b', 'd', 'a', 'c', 'f']
v = reduce(lambda x,y:x if y in x else x+[y],[[]]+elements)
print(v)
输出如下所示:
[[], 'a', 'b', 'e', 'c', 'b', 'd', 'a', 'c', 'f']
['a', 'b', 'e', 'c', 'd', 'f']
a = [1,2,3,4,5]
b = [2,4,5,6,7]
#交集
result = [i for i in a if i in b]
print('a与b的交集:',result)
#差集,在a中但不在b中
result = [i for i in a if i not in b]
print('a与b的差集:',result)
#并集
result = a
for r in b:
if r not in result:
result.append(r)
print('a与b的并集:',result)
输出如下所示:
a与b的交集: [2, 4, 5]
a与b的差集: [1, 3]
a与b的并集: [1, 2, 3, 4, 5, 6, 7]
#用set操作
a = [1,2,3,4,5]
b = [2,4,5,6,7]
#交集
result = list(set(a).intersection(set(b)))
print('a与b的交集:',result)
#差集 在a中但不在b中
result = list(set(a).difference(set(b)))
print("a与b的差集:",result)
#并集
result = list(set(a).union(set(b)))
print('a与b的交集:',result)
输出如下所示:
a与b的交集: [2, 4, 5]
a与b的差集: [1, 3]
a与b的交集: [1, 2, 3, 4, 5, 6, 7]
对序列反序,可以利用内置函数reversed()或range()来实现,也可以用扩展切片[::-1]的形式实现。序列是列表,还可以使用列表自带的reverse()方法。
reversed()是python内置函数,参数可以是字符串、列表或元组等序列
利用range()方法生成序列宕反序索引,然后从最后的元素遍历到开始的元素,就可以反序输出序列的元素。range(start,stop[,step])方法的参数说明
sea[::-1]扩展切片方法是利用粱序列宕切片操作,切片是序列的高级特性。seq[::-1]表示反向获取seq中的所有元素,并且每次取一个。-1表示从序列宕最后一个元素反向遍历获取。
如果是列表序列,还可以直接用列表的reverse()方法
seq = "Hello World"
#reversed()内置的函数方法
for s in reversed(seq):
print(s,end='')
#输出换行
print()
输出如下所示:
dlroW olleH
#range()函数方法
for i in range(len(seq)-1,-1,-1):
s = seq[i]
print(s,end='')
#输出换行
print()
#[::-1]扩展切片方法
for s in seq[::-1]:
print(s,end='')
#输出换行
print()
#list自带的reverse()方法
seq = [1,2,3,4,5,6]
seq.reverse()
for s in seq:
print(s,end='')
print()
输出如下所示:
654321
seq = [1,3,5,4,2,6]
seq.sort()
print(seq)
输出如下所示:
[1, 2, 3, 4, 5, 6]
seq = [1,3,5,4,2,6]
s = sorted(seq)
print(s)
输出如下所示:
[1, 2, 3, 4, 5, 6]
a1 = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
print(sorted(a1,key=lambda x:x['age'],reverse=True))
输出如下所示:
[{'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}, {'name': 'a', 'age': 20}]
方法 | 描述 |
---|---|
list.append(x) | 把一个元素添加到列表的结尾 |
list.extend(L) | 通过添加指定列表的所有元素来扩充列表 |
list.insert(i,x) | 在指定位置插入一个元素,第一个参数是准备插入到其前面的那个元素的索引。例如a.insert(0,x)会插入到整个列表之前 |
list.remove(x) | 删除列表中值为x的第一个元素。没有这样元素,就会返回一个错误 |
list.pop([i]) | 从列表的指定位置移除元素,并将其返回。没有指定索引,a.pop()返回最后一个元素。 |
list.clear() | 移除列表中的所有项,等于del a[:] |
list.index(x) | 返回列表中第一个值为x的元素的索引。没有匹配的元素就返回一个错误 |
list.count(x) | 返回x在列表中出现的次数 |
list.sort() | 对列表中的元素进行排序 |
list.reverse() | 倒排列表中的元素 |
list.copy() | 返回列表的浅复制,等于a[:] |
#list可以看作一个对象,append是这个对象的方法
# 对象可以理解为人,方法append类似这个人可以跑步、吃饭、打球
list1 = ['a','b','c']
list1.append('d')
print(list1)
list1.extend(['1','2','3'])
print(list1)
输出如下所示:
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', '1', '2', '3']
用来创建列表的表达式就是列表生成式,也被称为列表推导式。
list1 = [x+1 for x in range(1,8)]
print(list1)
输出如下所示:
[2, 3, 4, 5, 6, 7, 8]
函数及描述 | 描述 |
---|---|
len(dict) | 计算字典中的元素个数,键的总数 |
str(dict) | 输出字典,以可打印的字符串表示 |
type(variable) | 返回输入变量类型,如果变量是字典就返回字典类型 |
radiansdict.clear() | 删除字典内所有元素 |
radiansdict.copy() | 返回一个字典的浅复制 |
radiansdict.fromkeys() | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
key in dict | 键在字典dict里返回True,否则返回False |
radiansdict.items() | 以列表返回可遍历的(键、值)元组数组 |
radiansdict.keys() | 返回一个迭代器,可以使用list()转换为列表 |
radiansdict.setdefault(key,default=None) | 和get类似,键不存在字典中,将会添加键并将值设为default |
radiansdict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
radiansdict.values() | 返回一个迭代器,可以使用list()转换为列表 |
pop(key[,default]) | 删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出,否则,返回default值 |
popitem() | 随机返回并删除字典中的一对键和值(一般删除末尾对) |
使用pop和del删除字典中的name字段
dic = {"name":"刘备","age":19}
dic.pop("name")
print(dic)
dic = {"name":"刘备","age":19}
del dic["name"]
print(dic)
输出如下所示:
{'age': 19}
{'age': 19}
合并两个字典
dic1 = {"name":"刘备","age":19}
dic2 = {"hobby":"足球","money":100}
dic1.update(dic2)
print(dic1)
输出如下所示:
{'name': '刘备', 'age': 19, 'hobby': '足球', 'money': 100}
集合常见内置方法如下表所示:
方法 | 描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 复制一个集合 |
difference() | 返回多个集合的差集 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
isdisjoint() | 判断两个集合是否包含相同的元素,没有则返回True,否则返回False |
issubset() | 判断指定集合是否为该方法参数集合的子集 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
给定两个列表找出相同的元素和不同的元素
list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print(set1&set2)
print(set1^set2)
输出如下所示:
{3}
{1, 2, 4, 5}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。