python中的列表list

python中的list被称为列表、数组,list内部存储的数据时有序的,常常通过下标/角标/索引/编号查找list的元素

1.定义一个list

namelist = ['xiaoming','xiaohong','xiaoyue']

2.list的类型

print(type(namelist))   <<<   <class 'list'>

3.list增加元素

namelist.append('xiaowang')#list添加信息,append在列表的末尾增加元素
namelist.insert(0,'xiaowang')#list在指定的位置添加信息list.insert(index,value)

4.list删除元素

namelist.pop(2)#删除指定位置的元素
namelist.remove('xiaoyue')#删除指定的值
del namelist[2]#del 也是删除指定位置的,利用函数删除

5.修改元素

namelist[1] = 'xiaomi'#修改元素,直接赋值,通过编号

6.查元素

print(namelist[1])#取列表里面的第二个元素
print(namelist[-1])#取列表里面的最后一个元素

7.list方法

namelist.clear()#清空整个list
namelist.count('xiaowang')#返回这个元素在这个list中出现的次数
namelist.index('xiaowang')#返回这个元素第一次出现的下标,如果不存在这个元素会报错
namelist.reverse()#反转,没有任何的返回值,将namelist内容反转  
print(namelist)  #>>>
['xiaoyue', 'xiaohong', 'xiaoming']
print(len(listinlist))#查看list的元素个数

8.拼接两个list

userlist=['Tony','Tim']
namelist.extend(userlist)#将userlist里面的值加入到namelist中,插入到namelist的后面,namelist值改变了
alllist = namelist+userlist#两个列表相加,也是合并到一起的意思,两个list都没有改变,重新赋值给alllist

9.list内部排序(此时的所有元素必须为数字,整型/浮点)

numlist = [1,3,9,2,34]
numlist.sort()#排序,没有任何的返回值,排序默认升序 <<< [1,2,3,9,34]
numlist.sort(reverse=True)#排序变为降序  <<<  [34,9,3,2,1]

10.多维数组

#判断几维数组,就看有几个list层
list1 = [1,2,3]#一维数组
list2 = [21,2,[4,'4']]#二维数组
listinlist=[[1,2,3,4,5],['dd','ff','gg','ss',['aa','bb']],33]#三维数组
#多维数组操作:
listinlist[1][2]='性别'  >>> [[1,2,3,4,5],['dd','ff','性别','ss',['aa','bb']],33]
listinlist[1][4].append('cc') >>> [[1,2,3,4,5],['dd','ff','性别','ss',['aa','bb','cc']],33]

11.list循环两种方式

python3中range() 函数可创建一个整数序列对象,一般用在 for 循环中。<<<   <class 'range'>
range(start,stop[,step]) >>> range(0,5,1)从0开始,截止到4不包括5,步长为1
将range转换为lis >>> list(range(0,10,2)) >>> [0,2,4,6,8]
for name in namelist:#直接循环list,name为每次循环中namelist的元素值
     print(name)
 for i in range(len(namelist)):#通过角标获取元素值
     print(namelist[i])

12.string to list

import string
strus = ['11','22','rere','ggf','wew']
nums=[]
1.for i in string.digits:#1.for循环     nums.append(int(i))   >>>  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.nums = list(string.digits)#2.强制类型转换   >>> ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

13.list循环实例:

第一个:
a=[1,3,4,3,7,7,5] for i in a: if i%2!=0: a.remove(i)#删除只能删掉第一个出现的i,后面的i不能被删除 print(a)#执行结果是[4,3,7,5],第一次是奇数删除,列表变为[3,4,3,7,7,5],第二次循环呢从下标1开始,此时3变成了下标0,所以3被打印出来,以此类推 第一次 [1,3,4,3,7,7,5] 下标0,value为1,删除 第二次 [3,4,3,7,7,5] 下标1,value为4,保留 第三次 [3,4,3,7,7,5] 下标2,value为3,删除第一个3 第四次 [4,3,7,7,5] 下标3,value为7,删除第一个7 第五次 [4,3,7,5] 下标4,超过数组下标最大值,跳出for循环 结果为 [4,3,7,5]

第二个: a
=[1,3,4,3,7,7,5] b=a#list赋值给的是内存地址,此时a和b存储的是一个内存地址,指向一个空间,所以循环a或者b都一样 for i in b: if i%2!=0: a.remove(i) print(id(a)) print(id(b))#a和b的内存地址是一样的,因为b=a,定义a的时候,a里面存的是内存地址,内存地址指向的是一个存储数据的内存 print(a)#执行结果为[4,3,7,5]

第三个: a=[1,3,4,3,7,7,5] b=a[:]#取出a中的所有元素给b,并不是内存地址,此时b被重新分配一个内存空间,a和b所存储的内存地址不同,此时循环b删除a,b永远都是完整的b for i in b: if i%2!=0: a.remove(i) print(id(a)) print(id(b))#a和b的内存地址是不一样的

14.例子

username = 'xiaohong'
namelist = ['xiaoming','xiaohong','xiaoyue']
if namelist.count(username)>0:#查找username在namelist中出现的次数,如果大于0代表存在
    print('user is exist')
if username in namelist:#用in也能进行判断,判断用户是否存在
    print('user is exist')
if not username in namelist:#用户不存在,条件判断前面加一个not
    print('user is not exist')
原文地址:https://www.cnblogs.com/xiaoneng/p/9198261.html