python-元组,列表,字典,集合
标签(空格分隔): (元组,列表,字典,集合)
字符串的格式化
#rang()括号里是从小到大,不能反着
在2.7里
c=rang(1,10)
运行直接得到一个列表
['1','2','3','4','5','6','7','8','9']
而在3.6里,这是一个难加载,就是虽然执行了语句,但不会加载出来,就是一个列表了,可以调用里面的元素,就是不能显示出来
c=range(1,10)
print(c)
print(c[2])
range(1, 10)
3
注意:主要是为了保护程序,万一后面10多加了几个0,马上执行就会耗时秏力
zip
与range一样是难加载
用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果迭代器的元素不同,则以最短的为准,利用*号操作符,可将元组解压为列表。
num1=[1,2,3]
num2=['hello','world','lili']
for i,j in zip(num1,num2):
print(i,j)
1 hello
2 world
3 lili
num1=[1,2,3]
num2=[4,5,6]
num3=[4,5,6,7,8]
ztup1=zip(num1,num2) #打包
for i in ztup1:
print(i)
print(zip(*ztup1)) #解压
#添加
append
insert
extend
#更新
直接赋值
#查找
#删除
del:
根据下标进行删除
remove:
根据元素的值进行删除
pop:
默认删除最后一个
clear:
整个清空
#排序
sort
a=[1,3,2,4]
a.sort() #默认升序
a.sort(reverse=True) #降序
a.reverse() #倒置
统计词频
# 统计字母
str = input("请输入一个字符串:")
res = {} # key不可能重复的
for i in str:
if i in res: # 表示字符在字符串已经出现过,在原来统计结果加1
res[i] = res[i] + 1
else: # 表示在整个字符串第一次出现
res[i] = 1
print(res)
# i表示字符串的每一个字符,添加到字典中为key,res[i]表示value
请输入一个字符串:avnknvskass
{'a': 2, 'v': 2, 'n': 2, 'k': 2, 's': 3}
from collections import defaultdict
items_by_id = defaultdict(list)
consolidated_list = [('a',1),('b',2),('c',3),('b',4)]
for id_, item in consolidated_list:
items_by_id[id_].append(item)
# 统计词频
colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
result = {}
for color in colors:
if result.get(color)==None:
result[color]=1
else:
result[color]+=1
print (result)
# 输出 {'red': 2, 'blue': 3, 'green': 1}
from collections import defaultdict
colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
d = defaultdict(int)
for color in colors:
d[color] += 1
print(d)
from collections import Counter
colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
c = Counter(colors)
# top2
print(c.most_common(2))
print (dict(c))
可变类型:list,dict
不可变类型:数值,字符串,元组
sets
sets(集合)很多新手忽视sets(集合)和tuple(元组)的强大之处例如,取两个列表交集:
def common_elements(list1, list2):
common = []
for item1 in list1:
if item1 in list2:
common.append( item1 ) 、
return common
# 这样写会更好:
def common_elements(list1, list2):
common = set(list1).intersection(set(list2))
return list(common)
dict
dic(字典)新手枚举(访问和取出)字典的键和对应值,认为对应值必须通过键来访问,往往会这样做:
my_dict = {'a':1,'b':2}
for key in my_dict:
print(key, my_dict[key])
# 有一个更优雅的方法可以实现:my_dict = {'a':1,'b':2}
for key, value in my_dict.items():
print(key, value)
tuple
tuple(元组)元组一旦创建就无法更改元素,看似没有什么用处,其实元组的作用大着呢!很多函数方法都会返回元组,比如enumerate()和dict.items(),并且可以在函数中使用元组,返回多个值。还能够很方便地从元组中提取信息:
a,b = ('cat','dog')
上面元组中有两个元素,分别被赋给a,b。如果有多个值,同样可以提取:
a,b,c = ('cat','dog','tiger')
print(a,b,c)
提取首、尾两个元素:
first,*_,end = (1,2,3,4,5,6)
print(first,end)
# 输出:1、6
提取首、中、尾三部分:
first,*middle,end = (1,2,3,4,5,6)
print(first,middle,end)
# 输出:1、[2, 3, 4, 5]、6
元组还可以用来交换变量:
(a,b,c) = (c,a,b)
上面a变成之前的c,b变成之前的a,c变成之前的b元组也能作为字典的键,所以如果你需要存储数据,可以使用带有元组键的字典,比如说经纬度数据。
https://www.cnblogs.com/who-care/p/9306800.html