首页 > 编程语言 > 详细

python之列表

时间:2019-06-30 19:05:21      阅读:114      评论:0      收藏:0      [点我收藏+]

python中的列表类

     1、list类:列表 

          eg: li = [1,12,"alex",[1,2,3],True]

      2、列表是用中括号[ ]括起来,用逗号分割每个元素。其中元素可以是数字、字符、列表、布尔值等任意类型。字符串可以理解为字符的集合,那么列表就可以理解为python中任意对象的集合。

      3、列表可以采用索引或者切片取值,也可以用for循环或者while循环取值:

li = [1,2,"abc",[1,2,3]]
#索引取值
print(li[0])
#切片取值,输出仍然是列表
print(li[0:3])
#for循环取值,一个个输出
for item in li:
    print(item)
#while循环取值,一个个输出
i = len(li)
a = 0
while a < i:
    print(li[a])
    a +=1

   4、字符串一旦定义就不可以修改,在内存里面是按顺序存储,重新赋值也是重新生成的过程。列表元素是可以被修改或者被删除的(列表在内存中存储时每个元素存储时都会有下一个元素的位置信息,指向下一个元素。类似于c中的链表)。

li = [1,2,"abc",[1,2,3]]
print(li)
#修改列表元素值,通过索引修改
li [1]="alex"
print(li)
#通过切片修改
li [1:3]=["a","b"]
print(li)
#删除列表元素,索引方式
del li[2]
print(li)
#删除列表元素,切片方式
del li[1:2]
print(li)

  5、列表也支持in操作:判断某些元素是否存在于列表,在列表中的元素以逗号分割作为整体判断,一个元素的部分是会判断为False的。

li = [1,2,"abc",[1,2,3]]
v = 1 in li
#True
print(v)
v = "ab" in li
#False
print(v)

  6、列表中索引进行取值时可以一直往里找:

li = [1,2,"abc",["alex",2,3]]
#如果我想取值alex中的l,可以使用如下方式:
print(li[3][0][1])

  7、其他类型转换列表,其实原理就是一个for循环。由于数字不能使用for循环,所以数字不能直接转换成列表。列表转换成字符串,如果直接str赋值,则输出整体,如果想要把每个元素拼接成字符串,需要使用for循环进行。

#字符串转列表
s = "abcdef"
li = list(s)
print(li)
#输出是:[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘],对每一个字符进行循环当做列表的元素
#如果是s=123,s为数值型,是不能用list进行转换的,由于不支持for循环
#列表转字符串
li = ["a","b",123,4477]
b = str(li)
print(b)
#输出是:[‘a‘, ‘b‘, 123, 4477]

#1、如果既有数字又有字符串的话,需要使用for循环一个个处理
s = ""
for item in li:
    s += str(item)
print(s)
#输出是:ab1234477

#2、如果只有字符串的话,可以使用join。带有数值的话是不可行的,会报错。
li = ["abc","def"]
v="".join(li)
print(v)

  8、列表类对应的函数/方法:

              1)append:追加,在列表原来的值的最后面直接追加元素(把append后的元素当做一个整体)。不需要赋值,直接运行,更改原来的列表。

               2)clear:清空,清空列表。不需要赋值,直接运行,更改原来的列表。

               3)copy:复制,浅拷贝。需要赋值给新变量。

               4)count:计算某个元素出现的次数

               5)extend:扩展,在列表后面直接追加。参数是可迭代对象(列表/字符串)(把extend后面的元素用for循环进行添加,不是一个整体)。

               6)index:找元素的位置,根据输入的参数的值,输出从前往后找到的第一个元素的索引位置。

               7)insert:在指定的索引位置进行元素追加。

               8) pop:默认情况删除最后一个元素,还可以把删除的值进行赋值。如果加上索引参数,则可以删除指定索引位置的值。

               9)remove:删除列表中的指定元素,按照指定的元素进行删除。删除列表中的指定值,如果指定元素有重复,则删除列表左边的第一个元素。

               10)reverse:反转,将当前列表进行反转

                11)sort:排序。默认是从小到大排序,加上reserve=True参数则是从大到小排序。

#1、apennd:当做一个整体进行在原列表最后进行追加,不需要重新赋值。改变原列表的值。
li = ["abc",123,[1,2,"dd"]]
li.append(123)
#输出:[‘abc‘, 123, [1, 2, ‘dd‘], 123]
print(li)
li.append(["mm","11"])
print(li)
#输出:[‘abc‘, 123, [1, 2, ‘dd‘], 123, [‘mm‘, ‘11‘]]

#2、clear:清空列表。改变原列表的值。
li = ["abc",123,[1,2,"dd"]]
li.clear()
print(li)
#输出是:[]

#3、copy:浅拷贝一份列表,赋值或者打印。不改变原列表,需要新赋值。
li = ["abc",123,[1,2,"dd"]]
new_li = li.copy()
print(new_li)
#输出结果是:[‘abc‘, 123, [1, 2, ‘dd‘]]

#4、count:计算某个元素出现的次数
li = ["abc",123,[1,2,"dd"],123]
v = li.count(123)
print(v)
#输出是:2

#5、extend:扩展,在列表后通过for循环直接追加可迭代对象。改变原列表的值。
li = ["abc",123,[1,2,"dd"]]
li.extend([123,45])
print(li)
#输出是:[‘abc‘, 123, [1, 2, ‘dd‘], 123, 45]
li.extend("abc")
print(li)
#输出是:[‘abc‘, 123, [1, 2, ‘dd‘], 123, 45, ‘a‘, ‘b‘, ‘c‘]

#6、index:寻找某一元素位置,若有重复,只输出最左边的.还可以加开始结束索引位置
li = ["abc",123,[1,2,"dd"],123]
print(li.index(123))
#输出是:1
print(li.index(123,2,4))
#输出是:3

#7、insert:在指定索引的位置后进行元素追加。改变原列表的值。
li = ["abc",123,[1,2,"dd"]]
li.insert(1,456)
print(li)
#输出是:[‘abc‘, 456, 123, [1, 2, ‘dd‘]]

#8、pop:删除,默认删除最后一个元素,指定了索引就删除指定索引的元素。改变原列表的值。
li = ["abc",123,[1,2,"dd"]]
a = li.pop()
b = li.pop(1)
print(a)
#输出是:[1, 2, ‘dd‘]
print(b)
#输出是:123
print(li)
#输出是:[‘abc‘]  #由于连续删除了两次,所以只剩下一个元素

#9、remove:按照指定元素进行删除,若遇到重复元素,只删除最左边的元素。改变原列表的值。
li = ["abc",123,[1,2,"dd"],123]
li.remove(123)
print(li)
#输出是:[‘abc‘, [1, 2, ‘dd‘], 123]

#10、reverse:反转列表中的元素,改变原列表的值。
li = ["abc",123,[1,2,"dd"]]
print(li.reverse())
#输出是:None #代指空,原因是因为反转后会对原列表进行操作,所以是原列表数据改变。
print(li)
#输出是:[[1, 2, ‘dd‘], 123, ‘abc‘]

#11、sort:排序,然后改变原列表的值。
li = [11,22,44,77,33]
li.sort()
print(li)
#输出是:[11, 22, 33, 44, 77]

li = [11,22,44,77,33]
li.sort(reverse=True)
print(li)
#输出是:[77, 44, 33, 22, 11]

  

 

python之列表

原文:https://www.cnblogs.com/liuzhijia/p/11110088.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!