列表

列表

list 可以存儲(chǔ)不同數(shù)據(jù)類型的數(shù)據(jù)

name_list = ['魯班', 'xiaoming', 1024]
name_list
['魯班', 'xiaoming', 1024]
type(name_list)
list
# 訪問
name_list[0]
'魯班'
# 遍歷
for name in name_list:
    print(name)
魯班
xiaoming
1024
i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1
魯班
xiaoming
1024

列表的相關(guān)操作

# 查看列表的方法
print(dir([]))
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

<1> 添加操作

append()

在指定位置后插入

str = input('請(qǐng)輸入你想添加的內(nèi)容:')
name_list.append(str)
print('添加后:',name_list)
請(qǐng)輸入你想添加的內(nèi)容: 小麗


添加后: ['魯班', 'xiaoming', 1024, '小麗']
list1 = []
for i in range(10):
    list1.append(i)
    print(list1)
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

insert()

在指定位置 index 前插入元素 object

a = [0,1,2]
a.insert(1,10)   # (位置索引媳握,對(duì)象)
a
[0, 10, 1, 2]

extend()

將另外一個(gè)集合逐一的添加到列表中

a = [1, 2]
b = [3, 4]
a.extend(b)
print(a)
[1, 2, 3, 4]
a.append(b)
a
[1, 2, 3, 4, [3, 4]]

<2> 修改操作

name_list[1] = '小明'
name_list
['魯班', '小明', 1024, '小麗']

<3> 查詢操作

根據(jù)內(nèi)容查詢

find_name = '小明'
if find_name in name_list:
    print('小明在搏恤!')
else:
    print('buzai')
小明在偎箫!

根據(jù)索引查詢


# index()查找元素第一次出現(xiàn)的位置

a = ['a', 'b', 'c', 'a', 'b']
index = a.index('c',1, 3)  # [1,3) 內(nèi)查找
index
2

根據(jù)內(nèi)容查詢出現(xiàn)的次數(shù)

a.count('b')
2

<4> 刪除操作

del 根據(jù)下標(biāo)刪除

pop 刪除最后一個(gè)元素

remove 根據(jù)元素值進(jìn)行刪除

name_list = ['魯班', 'xiaoming', 1024]
print('刪除前:', name_list)

del name_list[0]

print('刪除后:', name_list)
刪除前: ['魯班', 'xiaoming', 1024]
刪除后: ['xiaoming', 1024]
name_list = ['魯班', 'xiaoming', 1024]
print('刪除前:', name_list)

name_list.pop()

print('刪除后:', name_list)
刪除前: ['魯班', 'xiaoming', 1024]
刪除后: ['魯班', 'xiaoming']

當(dāng) pop 指定索引后也可以指定位置刪除。

name_list = ['魯班', 'xiaoming', 1024]
print('刪除前:', name_list)

name_list.pop(-2)

print('刪除后:', name_list)
刪除前: ['魯班', 'xiaoming', 1024]
刪除后: ['魯班', 1024]
name_list = ['魯班', 'xiaoming', 1024]
print('刪除前:', name_list)

name_list.remove('xiaoming')

print('刪除后:', name_list)
刪除前: ['魯班', 'xiaoming', 1024]
刪除后: ['魯班', 1024]

列表的排序

from random import randint
num = randint(-10, 10)  # 生成 [10,10] 范圍內(nèi)的隨機(jī)數(shù)
num_list = []
for _ in range(10):
    num_list.append(randint(1, 20))
print(num_list)
[20, 8, 2, 8, 6, 18, 16, 1, 20, 15]
num_list.sort()

print(num_list)

num_list.sort(reverse = True) # 逆序排序

print(num_list)
[1, 2, 6, 8, 8, 15, 16, 18, 20, 20]
[20, 20, 18, 16, 15, 8, 8, 6, 2, 1]
kk = sorted(num_list)
print(kk)
print(num_list)
num_list.sort()
print(num_list)
# 區(qū)別
# .sort() 對(duì)原來的列表進(jìn)行修改排序
# sorted(num_list)對(duì)原來的沒有改變
# .sort() 是列表的成員方法
# sorted 可以對(duì)所有可迭代對(duì)象進(jìn)行操作
# ls.sort()  sorted(ls)  調(diào)用方式不同
[1, 2, 6, 8, 8, 15, 16, 18, 20, 20]
[20, 20, 18, 16, 15, 8, 8, 6, 2, 1]
[1, 2, 6, 8, 8, 15, 16, 18, 20, 20]

列表的嵌套

列表的列表

school_name = [['清華', '北大'],['南開', '天大'],['東秦', '燕山']]
school_name
[['清華', '北大'], ['南開', '天大'], ['東秦', '燕山']]
print(school_name[0][1])
# numpy中可以 school_name[0, 1] 訪問
北大

列表推導(dǎo)式

列表推導(dǎo)式就是指 使用輕量級(jí)循環(huán)創(chuàng)建列表

list1 = []
for i in range(10):
    list1.append(i)
print(list1)

list2 = [i for i in range(10)]
print(list2)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list3 = [i for i in range(2, 17, 2)]
list3
[2, 4, 6, 8, 10, 12, 14, 16]
list1 = []
for _ in range(10):
    list1.append('不給我魯班我就送')
print(list1)

list4 = ["不給我魯班我就送" for _ in range(10)]
print(list4)
['不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送']
['不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送', '不給我魯班我就送']
from random import randint
l = [randint(-10,10) for _ in range(10)]  # 生成 10 個(gè)元素势誊,范圍在【-10,10】區(qū)間的列表
print('原列表:', l)
# 選出大于等于 0 的數(shù)據(jù)
res = []
for x in l:
    if x>= 0:
        res.append(x)
print("使用for循環(huán)篩選:", res)

# 循環(huán)的過程中使用 if
res2 = [x for x in l if x >= 0]

print("使用列表推導(dǎo)式刪選:", res2)
原列表: [-2, 9, -9, -1, 3, 2, -2, -5, -2, -7]
使用for循環(huán)篩選: [9, 3, 2]
使用列表推導(dǎo)式刪選: [9, 3, 2]

列表與字符串

my_list = ['welcome', 'to', 'Ml', 'world']
my_list_to_str = str(my_list)  # 效果不好
print(my_list_to_str)
print(' '.join(my_list))
print('_'.join(my_list))
['welcome', 'to', 'Ml', 'world']
welcome to Ml world
welcome_to_Ml_world
# 列表和字符串的  *
str1 = 'hehe'*3
print(str1)

list4 = ['6', 9, 0]*5
print(list4)
hehehehehehe
['6', 9, 0, '6', 9, 0, '6', 9, 0, '6', 9, 0, '6', 9, 0]
# 練習(xí)

numbers = [i for i in range(11)]
print(numbers)
# 篩選出偶數(shù)的數(shù)據(jù)
numbers2 = []
for number in numbers:
    if number%2 == 0:
        numbers2.append(number)
print(numbers2)

number3 = [number for number in numbers if number%2 == 0]
print(number3)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 2, 4, 6, 8, 10]
[0, 2, 4, 6, 8, 10]
# 練習(xí)2 
# 一個(gè)學(xué)校有三個(gè)辦公室鹿寨,有八個(gè)老師隨機(jī)分派 完成隨機(jī)分派
import string 
# import random.randint as randint
from random import randint
# 定義辦公室
offices = [[],[],[]]
# 定義老師
names = list(string.ascii_uppercase[:8])
print(names)

for name in names:
    # 產(chǎn)生一個(gè)隨機(jī)數(shù)[0,2]
    index = randint(0,2)
    offices[index].append(name)
print(offices)

i = 1
for tempNames in offices:
    print('辦公室{}的中的人數(shù)為{}'.format(i,len(tempNames)))
    i += 1
    print('成員為:')
    for name in tempNames:
        print('{}'.format(name),end = '')
    print('\n','-'*30)
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
[['F'], ['A', 'B'], ['C', 'D', 'E', 'G', 'H']]
辦公室1的中的人數(shù)為1
成員為:
F
 ------------------------------
辦公室2的中的人數(shù)為2
成員為:
AB
 ------------------------------
辦公室3的中的人數(shù)為5
成員為:
CDEGH
 ------------------------------

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末颂郎,一起剝皮案震驚了整個(gè)濱河市谒获,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌业簿,老刑警劉巖瘤礁,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梅尤,居然都是意外死亡柜思,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門巷燥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酝蜒,“玉大人,你說我怎么就攤上這事矾湃⊥瞿裕” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長霉咨。 經(jīng)常有香客問我蛙紫,道長,這世上最難降的妖魔是什么途戒? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任证芭,我火速辦了婚禮筹淫,結(jié)果婚禮上充边,老公的妹妹穿的比我還像新娘茧彤。我一直安慰自己,他們只是感情好星爪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布浆西。 她就那樣靜靜地躺著,像睡著了一般顽腾。 火紅的嫁衣襯著肌膚如雪近零。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天抄肖,我揣著相機(jī)與錄音久信,去河邊找鬼。 笑死漓摩,一個(gè)胖子當(dāng)著我的面吹牛裙士,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播管毙,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼腿椎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锅风?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤鞍泉,失蹤者是張志新(化名)和其女友劉穎皱埠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咖驮,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡边器,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了托修。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忘巧。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖睦刃,靈堂內(nèi)的尸體忽然破棺而出砚嘴,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布际长,位于F島的核電站耸采,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏工育。R本人自食惡果不足惜虾宇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望如绸。 院中可真熱鬧嘱朽,春花似錦、人聲如沸怔接。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜕提。三九已至森书,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谎势,已是汗流浹背凛膏。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脏榆,地道東北人猖毫。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像须喂,于是被迫代替她去往敵國和親吁断。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容