Grundlegende Operation der Liste von Python muss Serien lernen

Anwendung des Listenindex-Index, um festzustellen, ob ein Element in der Liste vorhanden ist

name = ["daq","qwdwq","eqw","ewqq","eqwoj"]
#元素获取的使用:下标 索引
print(name[0])
print(name[3])

#获取最后一个元素
print(name[-1])
print(name[len(name)-1])

#获取第一个元素
print(name[0])

daq
ewqq
eqwoj
eqwoj
daq


例题:判断某个元素在不在列表中

方法一:使用for循环的模式
name = ["daq","qwdwq","eqw","ewqq","eqwoj"]
#列表的循环
# for i in name:
#     print(i)
#查询列表中是否有eqw
for i in name:
    if i == "eqw":
        print("eqw已经找到")
        break
else:
    print("没有找到")

eqw已经找到

方法2:使用in参数
name = ["daq","qwdwq","eqw","ewqq","eqwoj"]
if 'eqw' in name:
    print("找到元素")
else:
    print("没有找到")

找到元素


Liste der CRUD- Operationen

1) Operation ändern -----> Um die Verwendung von Indizes zu kombinieren

Der Kern der Änderungsoperation der Liste besteht darin, den Index des Elements zu finden, das geändert werden muss.

name = ["daq","qwdwq","中国","ewqq","神州"]
##如果已经知道要修改的元素在;列表中的某个位置,此时修改起来就比较的简单
# 1:找到下标 2:通过'='进行重新赋值 3:新的值覆盖原来的值
name[-1] = "shenzhou"
print(name)

['daq', 'qwdwq', '中国', 'ewqq', 'shenzhou']


##如果只知道眼修改的元素但是不知道元素对应的下标,此时就要结合for循环没来遍历找到元素对应的下标
##列表中元素的修改,一个基本的概念就是一定要找到元素对应的下标,然后在进行重新的赋值

方法1:
name = ["daq","qwdwq","中国","ewqq","神州"]
for i in range(len(name)):
    if name[i] == "中国":     ###这种使用==进行判断的,判断的标准是:name[i]对应的字符串就是'中国'
        name[i] = "China"
        break
print(name)

方法2:使用in
name = ["daq","qwdwq","中国","ewqq","神州"]
for i in range(len(name)):
    if "中国" in name[i]: ##而这种方法,判断的标准是:之言name[i]对应的字符串中之只要含有中国就可以
        print(i)
        name[i] = "China"
        break
print(name)

2
['daq', 'qwdwq', 'China', 'ewqq', '神州']

2) Löschen Sie den Vorgang der Liste (del)

Wichtig: Die zentrale Idee des Löschvorgangs der Liste besteht darin, den Index des entsprechenden Elements zu finden

Hinweis:

Wenn Sie mehrere Elemente in der Liste gleichzeitig löschen müssen, müssen Sie eine while-Schleife anstelle einer for-Schleife verwenden

Da die for-Schleife für i im Bereich (len (Liste)) verwendet wird, wird die Länge der Liste um eins verringert, wenn eine Löschoperation ausgeführt wird.

Wird es in Zukunft einen Fehler beim Durchlaufen der Schleife geben:

##如果只删除列表中的一个元素,此时使用for循环也可以

name = ["hp","mac","中国","dell","神州"]
for i in range(len(name)):
    if name[i] == "mac":
        del name[i]
        break    ###此处一定要使用break,删除之后就直接退出循环,这样子才不会报错
print(name)

##如果需要在列表中删除的元素不是一个,而是多个,此时就不可以使用for循环,会报错

name = ["hp","mac","中国","dell","神州"]
for i in range(len(name)):
    if name[i] == "mac" or name == "dell":
        del name[i]
print(name)

IndexError: list index out of range   ##因为当执行完依次删除操作之后,列表的长度就减1了,当下次在循环遍历的时候就会出现list index out of range的情况。因为起始的len(name)长度是不会变化的。


当执行多个删除任务的时候可以考虑while循环。

name = ["hp","mac","中国","dell","神州"]
i = 0   ##  i 指的是下标
l = len(name)
while i < l:
    if "mac" in name[i] or "dell" in name[i]:
        print(i)
        del name[i]
        l -=1  ##每次执行完一次删除的操作之后就将列表的总长度减1。
    i+=1
print(name)

1
2
['hp', '中国', '神州']

Beispiele für das Löschen von Listen:

一个列表为:words = ['a','b','c','d','e','yz']
输入一个你想删除的单词,删除之后将新的列表返回出来

方法一:使用for循环
words = ['a','b','c','d','e','yz']
word = input("请输入你想删除的单词:")
for i in range(len(words)):
    if words[i] == word:
        del words[i]
        break
print(words)


请输入你想删除的单词:a
['b', 'c', 'd', 'e', 'yz']

方法2:使用while循环

words = ['a','b','c','d','e','yz']
word = input("请输入你想删除的单词:")
i = 0
l = len(words)
while i < l:
        if words[i] == word:
            del words[i]
            l -=1
        i+=1
print(words)

请输入你想删除的单词:yz
['a', 'b', 'c', 'd', 'e']

Löschen Sie die Auslassungen in der Liste (verwenden Sie weiterhin zu lösen)

Experimentelles Szenario: Ich möchte Elemente löschen, die Go-Zeichen in der Liste enthalten

words = ['hello','goods','good','world','digot','alphago']
word = input("请输入你想删除的单词:")
i = 0
l = len(words)
while i < l:
        if word in words[i]:
            del words[i]
            l -=1
        i+=1
print(words)

请输入你想删除的单词:go
['hello', 'good', 'world', 'alphago']   ### 此时发现就会存在一个漏删的现象,因为每次执行一次删除操作,列表的长度减1,索引下标加1。

分析:刚开始的 i=0,l=6 第一个元素为hello,没有执行删除的操作。
     此时;l=6 i=1 此时遍历到goods,因为含有go字段,将其删除,执行了一次删除的操作。
        列表变为 ['hello','good','world','digot','alphago']
     此时:l=5 i=2 问题就出在我进行一次删除的操作,然后还将i+1了,此时在我新的列表中,索引下标为2    
           是world,就将我的good给跳过去了,此时就会造成一个漏删的现象


解决方法:使用continue,当我额米茨执行完依次删除的操作之后,我的i都不进行加1,此时就可以将漏删的问题给解决了


words = ['hello','goods','good','world','digot','alphago']
word = input("请输入你想删除的单词:")
i = 0
l = len(words)
while i < l:
        if word in words[i]:
            del words[i]
            l -=1
            continue
        i+=1

print(words)

请输入你想删除的单词:go
['hello', 'world']
    
    

Methode entfernen und pop ()

remove(e) ##删除列表中第一次出现的指定元素,返回值是个none,如果没有找到需要删除的元素,则会报错
name = ["sd","yz","flo","gli","gok","kui"]
name.append("yz")
name1=name.remove("yz")
print(name1)
print(name)

None
['sd', 'flo', 'gli', 'gok', 'kui', 'yz']

pop()   ###删除列表中的最后一个元素,返回值是被删除的那个元素

pop() 默认是可以不进行传输参数的,不过也指定我想删除的元素,但是和remove方法不同的是,remove智慧而指定你想删除的元素,但是pop参数加的是你想删除的元素对应的下标

name = ["sd","yz","flo","gli","gok","kui"]
print(name.pop())
print(name)


kui   ###可以看到pop操作的返回值是被删除的那个元素
['sd', 'yz', 'flo', 'gli', 'gok']


name = ["sd","yz","flo","gli","gok","kui"]
print(name.pop(3))   ###删除列表中,下标为3对应的元素
print(name)

gli
['sd', 'yz', 'flo', 'gok', 'kui']

Methode löschen

name = ["sd","yz","flo","gli","gok","kui"]
name.clear()
print(name)

[]

 

Die Slice-Index-Regel der Liste [ Start: Ende: Richtung und Schrittlänge angeben ]

Entspricht dem Slice-Index der Zeichenfolge

 

Operation zur Liste hinzufügen

Die Funktion der Add-Operation der Liste: Append Extend Insert

 

Anhängen Anhängt an das Ende der Liste

append() 末尾追加
#append是在列表的末尾追加一个元素,默认追加到列表的末尾
name = ["ad"]
while True:
    add_name = input("请输入你想添加的人(输入quit则表示退出)")
    if add_name == 'quit':
        break
    else:
         name.append(add_name)
print(name)

请输入你想添加的人(输入quit则表示退出)qe
请输入你想添加的人(输入quit则表示退出)eq
请输入你想添加的人(输入quit则表示退出)fqq
请输入你想添加的人(输入quit则表示退出)quit
['ad', 'qe', 'eq', 'fqq']

 

Erweitern wird zum Zusammenführen von Listen verwendet. '+' kann nicht nur zum Verketten von Zeichenfolgen, sondern auch zum Zusammenführen von Listen verwendet werden

#extend 列表的合并,用于在一个列表的后面追加一个列表。
name1 = ['qw','qdq']
name2=  ['dq','fgs','sgs','hfg']
name1.extend(name2)
print(name1)

['qw', 'qdq', 'dq', 'fgs', 'sgs', 'hfg']

‘+‘ 也可以用于列表的合并
name1 = ['qw','qdq']
name2=  ['dq','fgs','sgs','hfg']
print(name1+name2)

['qw', 'qdq', 'dq', 'fgs', 'sgs', 'hfg']

 

Einfügen einfügen, können Sie angeben, dass ein Element an einer bestimmten Position in der Liste eingefügt werden soll

name=  ['dq','fgs','sgs','hfg']
name.insert(1,'jl')  ##将jl这个元素添加到列表的下标为1的位置,其余的元素向后推迟
print(name)

['dq', 'jl', 'fgs', 'sgs', 'hfg']

 

Beispiel: Generieren Sie zufällig 10 Zufallszahlen und speichern Sie diese in der Liste

import random
num = []
for i in range(10):
    ran = random.randint(1,20)
    num.append(ran)
print(num)

[3, 7, 8, 11, 5, 16, 17, 7, 4, 18]

###此时发现,随机生成的10个元素里面会有重复的元素
如果 要求生成的10个元素里面不能有重复的元素,那么应该怎么办呢?此时就要使用while循环

import random
num = []
i =0
while i <10:
    ran = random.randint(1,20)
    if ran not in num:
        num.append(ran)
        i+=1         ###注意这个i+=1 一定要在if判断的里面,这样子在执行成功以后才执行加1操作
print(num)


[1, 11, 4, 16, 12, 15, 13, 19, 2, 8]

 

Beispiel: Finden Sie den Maximalwert in der Liste

1: Verwenden Sie die integrierte Methode max () der Liste

import random
num = []
i = 0
while i < 10:
    ran = random.randint(1, 20)
    if ran not in num:
        num.append(ran)
        i += 1
print(num)
##使用列表的max函数求出列表中的最大值
max_num = max(num)
print(max_num)

[5, 13, 20, 18, 12, 2, 11, 4, 7, 10]
20

2: Verwenden Sie for loop plus Vergleich, um das Maximum und das Minimum zu ermitteln

import random
num = []
i = 0
while i < 10:
    ran = random.randint(1, 20)
    if ran not in num:
        num.append(ran)
        i += 1
print(num)
max_num = num[0]  ##假设最大的值为列表的第一个值
min_num = num[0]
for i in  num:
    if i > max_num:  ##遍历循环整个列表,然后将取得值逐次与我自己定义的max_num值进行比较。
        max_num = i  ##每次将比较滞后最大的值复制给max_num,就可以找到最大列表中最大的值
    if i < min_num:
        min_num = i  ##取最小值
print(max_num)
print(min_num)

[15, 6, 2, 19, 8, 5, 18, 16, 17, 7]
19
2

 

Beispiel: Summierung von Zahlen in einer Liste

1: Verwenden Sie die Summenfunktion, um zu summieren

import random
num = []
i = 0
while i < 10:
    ran = random.randint(1, 20)
    if ran not in num:
        num.append(ran)
        i += 1
print(num)
##使用sum求和函数进行求和
sum1 = sum(num)
print(sum1)

[18, 12, 19, 3, 6, 5, 1, 9, 4, 15]
92

2: Verwenden Sie for-Schleife, um zu summieren

import random
num = []
i = 0
while i < 10:
    ran = random.randint(1, 20)
    if ran not in num:
        num.append(ran)
        i += 1
print(num)
sum1 =0
for i in num:
    sum1+=i
print(sum1)

[9, 7, 1, 18, 13, 12, 8, 20, 2, 11]
101

 

Beispiel: So sortieren Sie die Liste

1: Verwenden Sie eine sortierte Sortiermethode

sortiert (Liste) ---> Die Standardeinstellung ist aufsteigend

sortiert (Liste, Reserve = Wahr) ---> Zu diesem Zeitpunkt wird es in absteigender Reihenfolge sortiert

import random
num = []
i = 0
while i < 10:
    ran = random.randint(1, 20)
    if ran not in num:
        num.append(ran)
        i += 1
print(num)
sort_num=sorted(num)
print(sort_num)


[3, 11, 13, 16, 6, 4, 19, 7, 2, 15]
[2, 3, 4, 6, 7, 11, 13, 15, 16, 19]

import random
num = []
i = 0
while i < 10:
    ran = random.randint(1, 20)
    if ran not in num:
        num.append(ran)
        i += 1
print(num)
sort_num=sorted(num,reverse=True)   ###指定为降序进行排序
print(sort_num)

[17, 4, 7, 9, 2, 11, 15, 14, 19, 3]
[19, 17, 15, 14, 11, 9, 7, 4, 3, 2]

 

Verwendung zweidimensionaler Listen (Listen sind in der Liste verschachtelt)

list1=[[1,2,3],[5,7,8],['a','v',8]]
print(list1[2][1])  ###取出v
print(list1[0][2])  ###取出3

v
3

 

Typkonvertierung: Was kann in eine Liste konvertiert werden?

Typkonvertierung:

str ((

int () ---> Die Zahlen in der Liste können nicht direkt in Ganzzahlen konvertiert werden ---> Die Zahlen in der Zeichenfolge können in Ganzzahlen konvertiert werden

list () ## Konvertiert den angegebenen Inhalt in eine Liste. Der Inhalt muss jedoch iterierbar sein.

Was kann iteriert werden? ----> Dies bedeutet, dass die Elemente im Inhalt einzeln entfernt werden können.

Der Inhalt von for ... in ... kann iteriert werden, dh was in einer for-Schleife verwendet werden kann, ist iterierbar

String range () kann iteriert werden

Zahlen können nicht wiederholt werden

###字符串转列表
a = 'adj'
list1=list(a)
print(list1)

['a', 'd', 'j']

###range操作的返回结果都是可以转换成列表的
print(list(range(1,10)))
print(list(range(5)))
print(list(range(1,10,3)))

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4]
[1, 4, 7]

###一个数字就不可以转换成list的
list1=list(8)
print(list1)

TypeError: 'int' object is not iterable   ###错误显示,int的数据类型不能转换成列表的

 

Die Methode zum Umkehren der Liste ist umgekehrt (entspricht der Ausgabe der Liste in umgekehrter Reihenfolge).

name = ["sd","yz","flo","gli","gok","kui"]
name.reverse()
print(name)


['kui', 'gok', 'gli', 'flo', 'yz', 'sd']

 

So sortieren Sie die Liste

Vom System bereitgestellte Methode sortiert (Liste) list.sort ()

name = [2,42,63,33,73,72,84]
sorted(name)
print(name)

name1 = [2,42,63,33,73,72,84]
name1.sort()
print(name1)


[2, 42, 63, 33, 73, 72, 84]
[2, 33, 42, 63, 72, 73, 84]

 

 

Verwendung der Funktion enumerate (): Konvertieren eines iterierbaren Objekts in eine Index- und Wertform (Listenzeichenfolge kann verwendet werden)

Operation auf der Liste:

list1 = ['dqq','oqj','hsj','hau']
for index,value in enumerate(list1):
    print(index,value)

0 dqq     ###输出了列表的元素和其对应的下标
1 oqj
2 hsj
3 hau


也可以单独获取下标或者元素
list1 = ['dqq','oqj','hsj','hau']
for index,value in enumerate(list1):
    print(value)
    print(index)

dqq
0
oqj
1
hsj
2
hau
3

Operationen an Strings

for index,value in enumerate("hello"):
    print(index,value)


0 h
1 e
2 l
3 l
4 o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ich denke du magst

Origin blog.csdn.net/yinzhen_boke_0321/article/details/104525249
Empfohlen
Rangfolge