[经作者同意转载]:五大金刚之list

五大金刚之list八大操作详解

列表是最常用的Python数据类型之一,也是五大金刚中操作方式最多的一个数据类型。

本文将从八个角度粉碎性击破这一难点。

1.创建

  • pyhon中list中不需要具有相同的类型,用[ ]表示一个列表

  • 主要有两种创建方法:用[]括住直接创建,或者用关键词list()创建

a = [1,2,3,4]
b= ["zhangsan","lisi","wangwu"]
c = [1,2,"zhangsan",(1,2)] #但元组(1,2)将视为一个元素
>>[1, 2, 3, 4]
>>['zhangsan', 'lisi', 'wangwu']
>>[1, 2, 'zhangsan', (1, 2)]
  • list()可接受一个iterable的对象

d = list("hello")
f = list(range(4))
g = list((1,2,3,4))
>>['h', 'e', 'l', 'l', 'o']
>>[0, 1, 2, 3]
>>[1, 2, 3, 4]

2.增加

  • 增加元素主要有三种方法:append,insert,extend

append: 可以在列表后面增添一个新元素

cat = []
cat.append("tuantuan")
cat.append("yuanyuan")
print(cat)
>>['tuantuan', 'yuanyuan']

insert: 可以在指定元素前面增添一个新元素

cat.insert(1,"daju")
cat.insert(8,"maoye") #如果指定位置超出列表范围,会自动加到最后一位
print(cat)
['tuantuan', 'daju', 'yuanyuan', 'maoye']

extend: 两个列表做加法

dog = ["haha","beibei"]
cat.extend(dog) #将dog加入到cat里
print(cat)
>>['tuantuan', 'daju', 'yuanyuan', 'maoye', 'haha', 'beibei']

3.删除

  • 对于一个列表有三种删除方式:del,pop,remove

del:为python自带的运算符,不需要加括号

print(cat)
del cat[-1]
print(cat)
['tuantuan', 'daju', 'yuanyuan', 'maoye', 'haha', 'beibei']
['tuantuan', 'daju', 'yuanyuan', 'maoye', 'haha']

pop和del直接删除不同,它是将元素拎出来删除

  • 默认去掉最后一个

  • 可以指定下标

  • 会返回pop的值

l = [1,2,3,4,5]
print(l.pop())
print(l.pop(0))
print(l)
>>5
>1
>>[2, 3, 4]

remove 是定义在list下面的一个方法,只会删除符合条件的元素

print(l)
if 2 in l:
   l.remove(2)
print(l)
>>[2, 3, 4]
>>[3, 4]

4.修改

  • 通过索引对指定数值进行修改

p = [1,2,3,4,5]
p[0] = 9
print(p)
>>[9, 2, 3, 4, 5]

5.查找

  • 查询元素[ ],查询索引index(),查询长度len()

u = [3,8,7,5,2]
print("第二个元素是: ",u[1])
print("元素2的索引值是:",u.index(2))
print("列表长度是:",len(u))
>>第二个元素是:  8
>>元素2的索引值是: 4
>>列表长度是: 5

6.操作

  • 主要有循环、+、* 、sort、reverse、max、min

循环

name = ["崔","张","李","王"]
for n in name:
   print(n ,end="")
print()
for index,n in enumerate(name):
   print(f"no.{index} is {n}")
>>崔张李王
>>no.0 is
>>no.1 is
>>no.2 is
>>no.3 is

基本操作

print(name*2)
>>['崔', '张', '李', '王', '崔', '张', '李', '王']

print(name+[1,2,3])
>>['崔', '张', '李', '王', 1, 2, 3]

排序

  • reverse() 将列表倒序排列,该方法没有返回值。

  • sort() 将列表正序排列,该方法没有返回值

  • sorted() 将列表正序排列,但有返回值,而且不改变原列表

#reverse()
score = [67,84,78,56,98]
score.reverse()
print(score)
>>[98, 56, 78, 84, 67]
#sort()
score.sort()
>>[56, 67, 78, 84, 98]
#sorted()
score = [67,84,78,56,98]
print(sorted(score))
print(score)
>>[56, 67, 78, 84, 98]
>>[67, 84, 78, 56, 98]

max、min

score = [67,84,78,56,98]
print(max(score))
print(min(score))
>>98
>>56

7.切片

  • 切片操作 start : end : step

score = [67,84,78,56,98]
print(score[0:4:2])
>>[67, 78]

8.复制

推导式

nums = list(range(10))
print(nums)
nums_2 = [n+2 for n in nums]
print(nums_2)
nums_3 = [n for n in nums if n%2==0]
print(nums_3)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
>>[0, 2, 4, 6, 8]

复制

nums = list(range(10))
nums_4 = nums[:]
print(nums_4)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

创作不易,如果觉得有帮助的话希望可以点个喜欢,十分感谢!

转载地址https://blog.csdn.net/qq_43916391/article/details/108801477#t12

posted @ 2020-09-25 21:34  HFlyaway  阅读(89)  评论(0)    收藏  举报