一歼捏、元組: tuple
Python 的元組與列表類似颓影,不同之處在于元組的元素不能修改骆撇。
元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個(gè)元組
tup2 = (111, 22, 33, 444, 55, 6, 77 )forxin(tup2):#遍歷print(x)
list2 = [111, 22, 33, 444, 55, 6, 77 ]
tup2 = tuple(list2)#將列表轉(zhuǎn)變?yōu)樵M
二钾腺、列表: list
遍歷列表:
#遍歷列表
? list1 = [1, 2, 3, 6, 5, 4]forxin list1:
? ? print(x, end=",")# 運(yùn)行結(jié)果:1,2,3,6,5,4,foriin range(len(list1)):
? ? print("序號(hào):", i,"? 值:", list1[i])fori, valin enumerate(list1):
? ? print("序號(hào):", i,"? 值:", val)foriin list1:
? ? idx = list1.index(i)# 索引if(idx < len(list1) - 1):
? ? ? ? print(i,'---------', list1[idx + 1])
排序列表徙垫、判斷元素是否在列表中:
list1 = [1,2,3,6,5,4]
#排序列表(正序)
list1.sort()forxin list1:
? ? print(x, end=",")
#運(yùn)行結(jié)果:1,2,3,4,5,6,
print("")
#排序列表(倒序)
list1.reverse()
forxin list1:
? ? print(x, end=",") #運(yùn)行結(jié)果:6,5,4,3,2,1,
print("")
#判斷元素是否存在于列表中
if5in list1:
? ? print("5 在list1中")
#在末尾追加新的元素
list1.append(555)
list1.append(555)
print(list1)
#統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
print("出現(xiàn)",list1.count(555),"次")
#移除元素,并返回值(默認(rèn)是移除最后一個(gè))print(list1.pop(0))# 移除第一個(gè)
print(list1.pop())# 移除最后一個(gè)
隨機(jī)列表
import random#返回一個(gè)隨機(jī)的項(xiàng)目print(random.choice(range(100)))print(random.choice([1, 2, 3, 5, 9]))print(random.choice('Hello World'))
ls1 = [20, 16, 10, 5];
random.shuffle(ls1) #返回重新洗牌列表垮庐,隨機(jī)
?把數(shù)字列表轉(zhuǎn)換為字符列表
ls1 = [1,2,4,5]
ls2 = [str(i)foriin ls1]print(ls2)# ['1', '2', '4', '5']
三松邪、字典: dict
dict = {'name':'pp','age': 20,"gender":"man"}
dict["name"] ="sss"forkeyindict.keys():# 遍歷字典。字典的 keys() 方法以列表返回可遍歷的(鍵) 元組數(shù)組哨查。print(key)forvalindict.values():# 遍歷字典逗抑。字典的 values() 方法以列表返回可遍歷的(值) 元組數(shù)組。print(val)forkey, valindict.items():# 遍歷字典寒亥。字典的 items() 方法以列表返回可遍歷的(鍵, 值) 元組數(shù)組邮府。print(key," : ", val)
字典的多級(jí)嵌套:
citys={
? ? '北京':{
? ? ? ? '朝陽':['國(guó)貿(mào)','CBD','天階'],
? ? ? ? '海淀':['圓明園','蘇州街','中關(guān)村','北京大學(xué)'],
? ? ? ? '昌平':['沙河','南口','小湯山',],
? ? ? ? '懷柔':['桃花','梅花','大山']
? ? },
? ? '河北':{
? ? ? ? '石家莊':['石家莊A','石家莊B','石家莊C'],
? ? ? ? '張家口':['張家口A','張家口B','張家口C']
? ? }
}foriincitys['北京']:
? ? print(i)foriincitys['北京']['海淀']:
? ? print(i)
四、集合:? ? ? ? set
集合(set)是一個(gè)無序不重復(fù)元素的序列溉奕。 基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素褂傀。
集合無序,元素不能重復(fù)加勤。
去重:將列表轉(zhuǎn)化為集合仙辟,集合再轉(zhuǎn)化為列表,就可以去重鳄梅。
可以使用大括號(hào) { } 或者 set() 函數(shù)創(chuàng)建集合叠国,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來創(chuàng)建一個(gè)空字典戴尸。
student = {'Tom','Jim','Mary','Tom','Jack','Rose'}print(student)# 輸出集合粟焊,重復(fù)的元素被自動(dòng)去掉 {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'} # 成員測(cè)試if('Rose'in student) :
? ? print('Rose 在集合中')else :
? ? print('Rose 不在集合中')#Rose 在集合中
?從一個(gè)大集合里,去除一個(gè)小集合
set000 = set("123456789")
set1 = set(["2","3","5","5","6","0"])print(set000 - set1)#{'7', '8', '9', '1', '4'}
補(bǔ)充:相互轉(zhuǎn)換
1孙蒙、元組 => 列表?
tuple1 = (123,'haha','she','hehe')
list1 = list(tuple1)#將元組轉(zhuǎn)換為列表项棠。運(yùn)行結(jié)果:[123, 'haha', 'she', 'hehe']print(list1)
2、字符串 <=> 列表
str1 ='天地玄黃宇宙洪荒'list1 = list(str1)# 字符串轉(zhuǎn)為列表str2 ="".join(list1)# 列表轉(zhuǎn)為字符串print(str2)
str1 ='天地,玄黃,宇宙,洪荒'list1 = str1.split(",")# 字符串轉(zhuǎn)為列表print(list1)
str1 ='天地玄黃宇宙洪荒'str2 = str1[::-1]# 字符串倒序print(str2)
迭代器挎峦、生成器:http://www.runoob.com/python3/python3-iterator-generator.html
迭代器有兩個(gè)基本的方法:iter()?和?next()
importsys# 引入 sys 模塊list = [1, 2, 3, 4]
it = iter(list)# 創(chuàng)建迭代器對(duì)象while True:
? ? try:
? ? ? ? print(next(it))
? ? except StopIteration:
? ? ? ? sys.exit()
使用了?yield?的函數(shù)被稱為生成器(generator)香追。 跟普通函數(shù)不同的是浑测,生成器是一個(gè)返回迭代器的函數(shù)翅阵,只能用于迭代操作
import sysdeffibonacci(n):# 生成器函數(shù) - 斐波那契a, b, counter = 0, 1, 0
? ? while True:
? ? ? ? if(counter > n):
? ? ? ? ? ? returnyield a
? ? ? ? a, b = b, a + b
? ? ? ? counter += 1f = fibonacci(10)# f 是一個(gè)迭代器,由生成器返回生成while True:
? ? try:
? ? ? ? print(next(f), end="")
? ? except StopIteration:
? ? ? ? sys.exit()
Map迁央,F(xiàn)ilter掷匠,Reduce
Map 會(huì)將一個(gè)函數(shù)映射到一個(gè)輸入列表的所有元素上♂Γ 《镉铩(這個(gè)可以同時(shí)對(duì)list里的所有元素進(jìn)行操作,并以列表方式給出返回值蜂科。)
filter 過濾列表中的元素顽决,并且返回一個(gè)由所有符合要求的元素所構(gòu)成的列表短条。 〔挪ぁ(這個(gè)可以被用來過濾原有的list茸时,并把過濾結(jié)果放進(jìn)新的list里。)
當(dāng)需要對(duì)一個(gè)列表進(jìn)行一些計(jì)算并返回結(jié)果時(shí)赋访,Reduce 是個(gè)非常有用的函數(shù)可都。 ◎镜ⅰ(這個(gè)可以隊(duì)列表順序執(zhí)行算術(shù)運(yùn)算渠牲。)
http://docs.pythontab.com/interpy/Map_Filter/Map/
ls1 = [1, 2, 3, 4, 5]
ls2 = list(map(lambdax: x ** 2, ls1))#加了list轉(zhuǎn)換,是為了python2/3的兼容性步悠。? 在python2中map直接返回列表签杈,但在python3中返回迭代器print(ls2)# [1, 4, 9, 16, 25]ls1 = range(-5, 5)ls2 = filter(lambdax: x > 0, ls1)print(list(ls2))# [1, 2, 3, 4]fromfunctoolsimport reduce
product = reduce((lambdax, y: x * y), [1, 2, 3, 4])# 計(jì)算一個(gè)整數(shù)列表的乘積print(product)# 24
裝飾器:
def a(arg):
? ? passdef b(arg):
? ? passdef c(arg):
? ? passdef decorator(func):
? ? defwrapper(*arg, **kw)
? ? ? ? print('Start ---' , func)
? ? ? ? returnfunc(*arg, **kw)
? ? return wrapper
a = decorator(a)
b = decorator(b)
c = decorator(c)
有問題歡迎一起交流哦。