python-元组,列表,字典,集合(笔记)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值