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