python学习笔记------列表

本文详细介绍了Python列表的基本操作,包括定义、访问、切片、操作函数等,并通过实例演示了如何添加、删除、查找和排序列表元素。此外,还展示了如何使用Tkinter创建一个简单的GUI应用来实现列表的增删改查功能。
摘要由CSDN通过智能技术生成

列表

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值