公共操作與推導式
公共操作
| 操作方法 | 功能 | 描述 | 操作型別 |
|---|---|---|---|
| + | 合并 | 將兩個相同型別序列進行連接 | 字串、串列、元組 |
| * | 復制 | 將里面的資料進行復制 | 字串、串列、元組 |
| len | 獲取序列長度 | 查看序列長度 | 字串、串列、元組、字典,集合 |
| reversed | 倒置 | 將容器里面的資料倒置 | 字串、串列、元組、字典 |
| max, min | 最大最小值 | 求容器資料的最大最小值 | 字串、串列、元組、字典(key),集合 |
| sum | 求和 | 將容器的資料求和 | 串列、元組、字典(key,其為字串不能使用),集合 |
| enumerate | 索引映射 | 將索引映射給容器里面的資料 | 串列、元組、或字串 |
| in, not in | 是否存在 | 判斷資料是否存在于容器內 | 字串、串列、元組、字典,集合 |
| del | 洗掉 | 洗掉變數或者指定容器內資料 | 變數,容器里面的值 |
# reversed 倒置 將容器里面的資料倒置 字串、串列、元組、字典
l1 = [1, 2, 3]
print(reversed(l1)) # <list_reverseiterator object at 0x0000022CE5786A40>
# 可以轉為串列使用或者for回圈使用
print(list(reversed(l1))) # [3, 2, 1]
for i in reversed(l1):
print(i)
# 3
# 2
# 1
# enumerate 索引映射 索引映射給容器里面的資料 串列、元組、或字串
l1 = ['a', 'b', 'c']
# 轉換為常見資料型別或for回圈使用
print(list(enumerate(l1))) # [(0, 'a'), (1, 'b'), (2, 'c')]
for index, data in enumerate(l1, start=0): # start = 開始的索引值(不寫也可,默認為0)
print(index, data)
# 0 a
# 1 b
# 2 c
容器型別的轉換
- 所有資料型別都可以轉換為字串
- 轉換為集合的時候需要注意資料的去重
- 字典資料轉換是需要注意按照key還是value轉換
# 字典轉為串列
goods = {"name1": "可樂", "name2": "雪碧", "name3": "炸雞"}
list1 = list(goods)
print(list1) # ['name1', 'name2', 'name3'] 所有的key值轉換成了串列
list2 = list(goods.values())
print(list2) # ['可樂', '雪碧', '炸雞'] 所有的value值轉換成了串列
# 串列轉字典
# 串列是不能夠直接dict轉換成字典
# 1)嵌套串列轉字典
a = ['可樂', '雪碧']
b = ['3元', '5元']
c = [a, b] # 嵌套的形式轉換
print(c) # [['可樂', '雪碧'], ['3元', '5元']]
print(dict(c)) # {'可樂': '雪碧', '3元': '5元'}
# ps:若串列長度不一致,會報錯
# 2)使用zip()函式將串列轉換成字典
a = ['可樂', '雪碧', '炸雞']
b = ['3元', '5元']
c = zip(a, b)
print(c) # <zip object at 0x0000010FC5DD0040>
print(list(c)) # [('可樂', '3元'), ('雪碧', '5元')] 若長度不一樣,多出的元素會不顯示,
print(dict(c)) # {'可樂': '3元', '雪碧': '5元'} 若長度不一樣,多出的元素會不顯示,
串列推導式和三元運算式
# 串列推導式
# 代碼簡寫,增加運行效率 減少代碼可讀性,難理解
# 普通寫法
list_data = https://www.cnblogs.com/daguo118/p/[]
for i in range(10):
list_data.append(i)
print(list_data)
# 推導式寫法 不是所有代碼都可以簡寫為推導式,只有一種固定操作
# 創建串列,回圈資料,添加資料(append),沒有其他操作
list_data = [i for i in range(10)]
print(list_data)
# 普通寫法
list_data = []
for i in range(10):
if i % 2 == 0:
list_data.append(i)
print(list_data)
# 創建串列,回圈資料,添加資料位置永遠在最前面 if(多個也可以,但不建議,可讀性太差)放后面
list_data = [i for i in range(10) if i % 2 == 0]
print(list_data)
# 三元運算式
# 普通寫法
age = 16
if age > 18:
print("成年")
else:
print("未成年")
# 三元運算式的寫法
age = 16
print("成年") if age > 18 else print("未成年")
# 普通寫法,if分支陳述句種含有賦值
age = 16
if age > 18:
data = https://www.cnblogs.com/daguo118/p/1
else:
data = 0
print(data)
# if分支陳述句種含有賦值的三元運算式寫法
data = 1 if age > 18 else 0
print(data)
# 串列推導式與三元運算式
# 普通寫法
list_data = []
for i in range(10):
if i % 2 == 0:
list_data.append(i)
else:
list_data.append((str(i)))
print(list_data)
# 串列推導式與三元運算式結合使用
list_data = [i if i % 2 == 0 else str(i) for i in range(10)]
print(list_data)
ps:一般使用較多的就是串列創建時的串列推導式,其他不推薦使用,代碼可讀性太差,只需要認識其表達含義即可,
本文來自博客園,作者:大-鍋,轉載請注明原文鏈接:https://www.cnblogs.com/daguo118/p/17312219.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/549955.html
標籤:Python
下一篇:11函式入門
