python列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6924字,纯文字阅读大概需要10分钟。
内容图文
![python列表](/upload/InfoBanner/zyjiaocheng/641/2c604ebdff21472ebfdf79c506ec512c.jpg)
1.1 列表使用的函数
# 列表使用的函数
import random
list=[2,3,4,1,32]
print(len(list)) #5
print(max(list)) #32
print(min(list)) #1
print(sum(list)) # 42
random.shuffle(list) # 随意排列
print(list) # 随机的,如[32, 1, 2, 3, 4]
还有一些功能是序列功能:
python序列
1.2 列表解析
list=[1,2,3,4]
for i in list:
print(i,end=" ") # 1 2 3 4
# 列表解析
print()
list=[x for x in range(5)]
print(list) # [0, 1, 2, 3, 4]
list1=[x for x in range(5) if x>2]
print(list1) # [3, 4]
list2=[x for x in list1 if x<4]
print(list2) # [3]
1.3 列表方法
append(x:object) 添加到结尾
count(x:object) :统计列表中某个元素出现的次数
extend(l:list):列表2追加到列表1中
index(x:object):查找某个元素在列表中首次出现的位置(即索引)
insert(index:int,x:object) 元素x插入指定下标
pop(index):object 没有指定index,就删除list.pop(),返回最后一个元素
使用 del list[i]: 删除列表中元素
remove(x:object):移除列表中某个值的首次匹配项
reverse():None :倒序
sort():对列表中元素进行升序排序
copy(): 复制列表
list=[2,3,4,1,32,4] #创建,也可以 list=list([2,3,4,1,32,4])
list.append(19)
print(list) # [2, 3, 4, 1, 32, 4, 19]
print(list.count(4)) #元素4出现次数 ->2
list2=["hello","world"]
list.extend(list2)
print(list) #[2, 3, 4, 1, 32, 4, 19, 'hello', 'world']
print(list.index(2)) # 0
list.insert(8,"你好世界")
print(list) # [2, 3, 4, 1, 32, 4, 19, 'hello', '你好世界', 'world']
list.pop()
print(list) # [2, 3, 4, 1, 32, 4, 19, 'hello', '你好世界']
del list[len(list)-1]
print(list) # [2, 3, 4, 1, 32, 4, 19, 'hello']
list.remove(2)#元素
print(list) # [3, 4, 1, 32, 4, 19, 'hello']
list.reverse()
print(list)# ['hello', 19, 4, 32, 1, 4, 3]
# list.sort()
# print(list)# 会报错:TypeError: '<' not supported between instances of 'int' and 'str'
# #只能是同类型比较
list=["a","c","A","Z"]
list.sort()
print(list)# ['A', 'Z', 'a', 'c']
list2=list.copy()
print(list2) # ['A', 'Z', 'a', 'c']
1.4 字符串分成列表split()
string="I could win"
item=string.split(" ")
print(item)
print(type(item))
1.5 一行输入和多行输入 ,创建列表
s=input("Enter 5 numbers seperated by spaces from one line")
item=s.split()# type(item)=list
lst=[eval(x) for x in item]
print(lst)
lst=[]
print("Enter 5 numbers from several lines")
for i in range(5):
lst.append(eval(input()))
print(lst)
1.6 对列表移位
def leftShift(list):
temp=list[0]
for i in range(len(list)-1):
list[i]=list[i+1]
list[len(list)-1]=temp
list=[3,2,4]
leftShift(list)
print(list)
1.6.1 案例一:判断输入的数字是否涵盖1-99所有数字
isCovered=99*[False]
endOfInput=False
while not endOfInput:
s=input("Enter a line of numbers separated by spaces:")
items=s.split(" ")
lst=[eval(x) for x in items ]
for number in lst:
if number==0:
endOfInput=True
else:
isCovered[number-1]=True
allCovered=True
for i in range(99):
if isCovered[i]==False:
allCovered=False
break
if allCovered:
print("This tickets cover all number from 1->99")
else:
print("The tickets don't cover all numbers")
1.6.2 随机发牌
deck=[x for x in range(52)]
suits=["Spades","Hearts","Diamonds","Club"]
ranks=["Ace","2","3","4","5","6","7","8","9","10","Jack","Queue","King"]
import random
random.shuffle(deck)
for i in range(4):
suit=suits[deck[i]//13] #颜色
rank=ranks[deck[i]%13] # 图案
print("Card number ",deck[i]," is the",rank,"of ",suit)
1.6.3 可视化
# C:\Users\Lenovo\Pictures\Feedback\pukeImage
import random
from tkinter import *
from PIL import ImageTk
class CardGUI:
def __init__(self):
window=Tk()
window.title("Pick your cards randomly")
self.imageList=[]
for i in range(52):
self.imageList.append( ImageTk.PhotoImage(file="C:/Users/Lenovo/Pictures/Feedback/pukeImage/" +str(i+1)+ ".jpg" ) )
frame=Frame(window)
frame.pack()
self.labelList=[]
for i in range(4):
self.labelList.append(Label(frame,image=self.imageList[i]) )
self.labelList[i].pack(side=LEFT)
btShuffle=Button(window,text="Shuffle",command=self.shuffle).pack()
window.mainloop()
def shuffle(self):
random.shuffle(self.labelList)
for i in range(4):
self.labelList[i]["image"]=self.imageList[i]
CardGUI()
扑克牌图案下载
链接: https://pan.baidu.com/s/1Y_63hOT_o25Uo0jhtZ2N4A 提取码: s7y2
1.7 复制
#如果用=直接赋值,是非拷贝方法。这两个列表是等价的,修改其中任何一个列表都会影响到另一个列表。
list0=[1,2,4]
list=list0
print(id(list)==id(list0))
print(list)
#其他的第一层为深复制,其他层为浅复制
#其他的深复制
# 对于list的第一层,是实现了深拷贝,但对于嵌套的list,仍然是浅拷贝。
# 内层的list保存的是地址,复制过去的时候是把地址复制过去了。嵌套的list在内存中指向的还是同一个。
# 深拷贝主要是将另一个对象的属性值拷贝过来之后,另一个对象的属性值并不受到影响,
# 因为此时它自己在堆中开辟了自己的内存区域,不受外界干扰。
# 浅拷贝主要拷贝的是对象的引用值,当改变对象的值,另一个对象的值也会发生变化。
# 使用列表生成式1
list1=[x for x in list]
print(id(list1)==id(list))# False
list1=list1+[list]
list1[3][1]=10
print(list)
print(list1)
# 使用列表生成式2
list2=[]+list
print(id(list2)==id(list))# False
list2=list2+[list]
list2[3][1]=100
print(list)
print(list2)
# copy()方法
list3=list.copy()
print(id(list3)==id(list))# False
list3=list3+[list]
list3[3][1]=1000
print(list)
print(list3)
# 深拷贝
# 如果用deepcopy()方法,
# 则无论多少层,无论怎样的形式,得到的新列表都是和原来无关的,使用时,要导入copy。
import copy
old = [1,[1,2,3],3]
new = copy.deepcopy(old)
print('Before:')
print(old)
print(new)
new[0] = 3
new[1][0] = 3
print('After:')
print(old)
print(new)
1.8 返回列表
def m(x,lst=[1,1,2,3]):
if x in lst:
lst.remove(x)
return lst
def main():
list1=m(1)
print(list1)
list2=m(1)
print(list2)
main()
def m(x,lst=None):
if lst!=None:
if x in lst:
lst.remove(x)
return lst
def main():
list1=m(1)
print(list1)
list2=m(1,[2,3,1])
print(list2)
main()
1.9 排序
1.9.1 选择排序
#选择排序
import random
def selectSort(list):
for i in range(len(list)):
currentMin=list[i]
currentMinIndex=i
for j in range(i+1,len(list)):
if currentMin>list[j]:
currentMin=list[j]
currentMinIndex=j
if currentMinIndex!=i:
list[currentMinIndex]=list[i]
list[i]=currentMin
return list
def main():
list=[x for x in range(12) ]
random.shuffle(list)
print(list)
selectSort(list)
print(list)
main()
1.9.2 插入排序
#选择排序
import random
def insertSort(list):
for i in range(1,len(list)):
#和前面排好的比较
currentElement=list[i]
k=i-1
while k>=0 and list[k]>currentElement:
list[k+1]=list[k]
k-=1
list[k+1]=currentElement
def main():
list=[x for x in range(12) ]
random.shuffle(list)
print(list)
insertSort(list)
print(list)
main()
1.9.3快速排序
# 快速排序
import random
def Partition(list, low, high):
privotkey = list[low]
while low < high:
while low < high and list[high] >= privotkey:
high -= 1
list[low] = list[high]
while low < high and list[low] <= privotkey:
low += 1
list[high] = list[low]
list[low]= privotkey
return low
def quickSort(list, low, high):
if low < high:
pivotloc = Partition(list, low, high)
quickSort(list, low, pivotloc - 1)
quickSort(list, pivotloc + 1, high)
def main():
list = [x for x in range(12)]
random.shuffle(list)
print(list)
low = 0
high = len(list)-1
quickSort(list, low, high)
print(list)
main()
内容总结
以上是互联网集市为您收集整理的python列表全部内容,希望文章能够帮你解决python列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。