列表
1.定义列表 listname[n]
可以包含字母表中的多有字母及数字,元素之间没有任何关系,因为列表包含多个元素,所以建议给列表指定一个复数的名称。
元素索引从0开始。
b=[1,2,3,"dsdd"]
#列表中可以存放列表
li1=[[1,2,3,4.5,666],["qqq","aaa",2,1,4],['dfdf','jk','sd','gh'],4,5,6,7,8]
print(li1[1][1])
#输出为aaa
2.定义一个数字列表
range()
rang(1,10) //会生成一系列数字[1, 2, 3, 4, 5, 6, 7, 8, 9]
list(range(1,10)) //可以直接转换为列表
list(range(1,10,2)) //2为步长,列表元素为[1, 3, 5, 7, 9],这里的1是数字1
3.通过索引访问
name=['wanghua','liming',"yunque","lilei"]
print("my friend id %s %s, %s和%s是朋友" %(name[0].title(),name[1].title(),name[2].lower(),name[3]))
print(name[-1])
#-1访问的是列表最后一个元素
'''
输出为
my friend id Wanghua Liming, yunque和lilei是朋友
lilei
'''
4.通过切片访问
list1=[1,2,3,4,5,6,7,8,9,10]
list[开始:结束:步长]
a=list1[:5]
print(a)
name=['wanghua','liming',"yunque","lilei"]
print(name[0:4:1])
#是[0,4)
li1=[10,9,8,7,6,5,4,3,2,1]
li2=li1[:] #这里的数值是元素索引(和元素下标意义相同)
li2=li1[4:]
li2=li1[4:8]
例子:输出一个列表的偶数
#第一种
list1=[1,2,3,4,5,6,7,8,9,10]
list2=[]
for a in list1:
if a%2==0:
list2.append(a)
print(list2)
#第二种
list1=[1,2,3,4,5,6,7,8,9,10]
list2=list1[1::2]
#第三种
list1=[1,2,3,4,5,6,7,8,9,10]
list2=list1[1:10:2]
//相当于[1,10)
5.列表的操作函数
list=[1,2,3,'string','name','lihua',2,6]
temp=[1,2]
添加
list.append('string') #末尾追加
list.insert(2,'string') #自定义插入位置
list.extend(temp) #追加新列表到列表中
#例子:
li1.extend(temp)
print(li1)
#输出为[1, 2, 3, 'string', 'name', 'lihua', 1, 2]
删除
#根据值删除元素(只删除第一个指定元素,如果重复,需要循环来删除)
list.remove('name')
del list[2] #删除指定位置数值
list.pop() #尾部删除
list.pop(2) #删除指定位置元素
#例子:
del_value=list.pop()
print(del_value)
#输出的值为lihua,pop删除元素的同时,能将删除的元素返回
clear()函数,可以清空列表
list.clear()
#例子:
del_value=list.clear()
print(del_value)
print(list)
'''
None
[]
'''
查询
list.count(2) #查看某个元素出现的次数,2指的是数字2,而不是元素索引
list.index(2) #查看某个元素出现的下标,2指的是数字2,而不是元素索引
#从元素索引0开始,查找这个元素第一次出现的位置
list.index(2,3) #查找元素2在索引3之后第一次出现的位置
list.index(2,3,7)#查找元素2在索引3到7第一次出现的位置
'''
count() 方法用于统计字符串里某个字符出现的次数。
可选参数为在字符串搜索的开始与结束位置。
'''
排序
sort() #对列表进行永久排序
list.sort() #从小到大排序
list.sort(reverse=True) #从大到小排序 T是必须大写
sorted() #对列表进行临时排序,不影响列表的原始排序
list.sorted() #从小到大排序
list.sorted(reverse=True) #从大到小排序 T是必须大写
//这样显示就是显示数字添加在排序的位置
change1=text1.get()
list.append(change1)
lb1.delete(1.0, END)
list.sort()
lb1.insert(END, list)
print(list)
/*
['111', '2222', '333', '999', 'lilei', 'liming', 'linhua', 'wangzhe']
['111', '2', '2222', '333', '999', 'lilei', 'liming', 'linhua', 'wangzhe']
*/
反转
reverse()
list.reverse()
#将列表元素的顺序进行反正,想要回到原始顺序,只需要再次反转即可
确定列表的长度
len()
len(list) #计算元素长度/个数
遍历整个列表
for a in list:
print(a) #python中循环体必须缩进
练习:
from tkinter import *
list_1=['linhua','liming','lilei','wangzhe','yunque',111,'333',55,33,333,555,111,222,333,222]
list_1=list(map(str,list_1)) #将list_1的元素都转换成字符串
#删除
def dell():
change1 = text4.get() #获取文本框数值
judge=list_1.count(change1) #查看元素出现的个数
if judge>0:
list_1.remove(change1) #删除第一个指定元素
text4.delete(0, END) #清空删除文本框
text4.insert(END, "已删除")
else:
text4.delete(0, END)
text4.insert(END,"暂无此值")
lb1.delete(1.0,END)
lb1.insert(END,list_1)
print(list_1)
#添加
def addd():
change1=text2.get()
list_1.append(change1) #尾部追加
text2.delete(0, END)
lb1.delete(1.0, END)
lb1.insert(END, list_1)
text2.delete(0,END)
#搜索
def inquire():
value_1=text3.get()
num=[]
inquire_num=list_1.count(value_1) #查看元素出现的个数
if inquire_num>0:
temp="一共有"+str(inquire_num)+"个"
num.append(temp)
address=0
for i in range(1,inquire_num+1):
address=list_1.index(value_1,address)
temp="第"+str(i)+"次出现在位置"+str(address)+"上"
num.append(temp)
address+=1 #让元素索引到下一位置
text3.delete(0, END)
else:
text3.delete(0,END)
text3.insert(END,"不存在此值")
lb1.delete(1.0,END)
lb1.insert(END,num)
text2.delete(0, END)
#主页查看
def view():
lb1.delete(1.0, END)
lb1.insert(END, list_1)
text2.delete(0, END)
text3.delete(0, END)
text4.delete(0, END)
#GUI
root_test=Tk()
root_test.title("列表增删改查")
root_test.geometry('500x500')
lb1=Text(root_test)
lb1.place(relx=0,rely=0,relwidth=0.7,relheight=0.3)
butt1=Button(root_test,text="主页",command=view)
butt1.place(relx=0.7,rely=0,relwidth=0.3,relheight=0.3)
text2=Entry(root_test)
text2.place(relx=0,rely=0.3,relwidth=0.7,relheight=0.1)
butt2=Button(root_test,text="添加",command=addd)
butt2.place(relx=0.7,rely=0.3,relwidth=0.3,relheight=0.1)
text3=Entry(root_test)
text3.place(relx=0,rely=0.4,relwidth=0.7,relheight=0.1)
butt3=Button(root_test,text="搜索",command=inquire)
butt3.place(relx=0.7,rely=0.4,relwidth=0.3,relheight=0.1)
text4=Entry(root_test)
text4.place(relx=0,rely=0.5,relwidth=0.7,relheight=0.1)
butt4=Button(root_test,text="删除",command=dell)
butt4.place(relx=0.7,rely=0.5,relwidth=0.3,relheight=0.1)
lb1.delete(1.0, END)
lb1.insert(END, list_1)
root_test.mainloop()