python笔记之序列(list的基本使用和常用操作)

列表

简单来说就是有序的,可变的,可包含任意对象的集合。
属于可变序列
可包含任意类型(对象)
通过下标访问元素,从0开始
长度可变,任意嵌套
支持原位改变,可以动态的收缩或者扩展大小

列表的基本使用
none_list = []                 #定义一个空列表
list1 = [1,2,3,4,5]            #为列表赋值单一的类型
list2 = ["a",1,3.1415926,True] #为列表赋值不同的类型
print(type(list1))              #输出 list1 的类型
print(type(list2))              #输出 list2 的类型
print(list1[0])                 #通过下标访问  
print(list2[1:])                 
print(list2[:3])
print(list2[2:3])
print(list2[-1])
print(list2[-2])
print(list2[-4])  

运行结果:

<class 'list'>
<class 'list'>
1
[1, 3.1415926, True]
['a', 1, 3.1415926]
[3.1415926]
True
3.1415926
a
特点1:长度可变

给原列表添加一个新的元素


list1 = [1,2,3]
print(list1)
list1.append(4)
print(list1)

运行结果:

[1, 2, 3]
[1, 2, 3, 4]
特点2:支持原位改变

将列表的第一个元素替换为新的元素

list1 = [1,2,3]
list1[0] = 99
print(list1)  

运行结果:

[99, 2, 3]
特点3:任意嵌套

列表里可以接着嵌套列表

list3 = [0,1,2,"str",[11,22,33],[000,111,222]]
print(list3)          #输出嵌套列表
print(list3[4][2])    #输出嵌套列表的第4个元素里的第2个元素

运行结果:

 [0, 1, 2, 'str', [11, 22, 33], [0, 111, 222]]
 33

##### 遍历列表中的元素

方法一:
python
list1 = [2,3,4,5,6]
for i in range(0,len(list1)):
print(list1[i])

方法二:

list1 = [2,3,4,5,6]
for j in list1 :
    print(j)

运行结果:

2
3
4
5
6
遍历嵌套列表
1.有规律都是列表时
list4 = [[1,2,3],[11,22,33],["a","b","c"]]
for a in list4:
    print(a)
    for item in a:
        print(item)

运行结果:

[1, 2, 3]
1
2
3
[11, 22, 33]
11
22
33
['a', 'b', 'c']
a
b
c
2.无规律,有列表也有其他字符时
list1 = ["a",["bb","cc"],"1","2",["q","w","e"]]
for b in list1:
    print(b)
    if isinstance(b,list):  # true  元素为list
        for item in b:
            print(item)  

运行结果:

a
['bb', 'cc']
bb
cc
1
2
['q', 'w', 'e']
q
w
e
列表的排序
  1. 从小到大排序
scores = [12,34,1,55,525,53]
scores.sort()    #从小到大,直接改变本身
print(scores)

运行结果:

[1, 12, 34, 53, 55, 525]
  1. 列表是字母时,如何排序?

按照首字母排序

names = ["aom","cike","zoin","you"]
names.sort()     #按照开头字母排序
print(names)

运行结果:

['aom', 'cike', 'you', 'zoin']  

按照最后一个字母来排序

names = ["aom","cike","zoin","you"]
names.sort(key=lambda a:a[-1])
print(names)

运行结果:

['cike', 'aom', 'zoin', 'you']
倒置列表

先排序,在倒置
示例:

scores = ["aom","cike","zoin","you"]
scores.sort(reverse=True) #相当于scores.sort()  scores.reverse()
print(scores)  

运行结果:

['zoin', 'you', 'cike', 'aom']
sorted() 函数

功能:从小到大进行排序,会返回一个新的结果,列表本身不会改变

示例:

a = [12,23,1,44]
print(sorted(a))  #从小到大进行排序,会返回一个新的结果,列表本身不会改变
print(a)

运行结果:

[1, 12, 23, 44]
[12, 23, 1, 44]
列表的转换
  1. 字符串转列表
  2. 元组转列表
    示例:
str1 = "abc"
print(str1)
print(list(str1)) # 字符串转列表
tuple1 = (1,"2","3")
print(list(tuple1))  #元组转列表

运行结果:

['a', 'b', 'c']
[1, '2', '3']
判断元素是否在序列之内

如果在返回True 不在返回False

示例:

a = list(range(0,7))
b = ["tom","zhangsan","马小跳"]
print(1 in a )
print("马小跳" in b )
print(1 not in a )  

运行结果:

True
True
False
检测序列中某个元素第一次出现的位置

示例: 查找元素4第一次出现的位置

d = [1,3,4,3,4,5,3]
print(d.index(4))

运行结果:

2
统计某个元素出现的次数

示例:统计元素3出现的次数

d = [1,3,4,3,4,5,3]
print(d.count(3))  

运行结果:

3
列表的修改

注意:修改的结果是直接作用于本身的

l = list(range(1,11))
print(l)
#改变某个元素的值
l[0] = 99
print(l)
#改变范围元素的值
l[0:5] = [99]
print(l)
#改变步长范围的值
l1 = list(range(1,11))
l1[::2] = [99,99,99,99,99]
print(l1)  

运行结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[99, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[99, 6, 7, 8, 9, 10]
[99, 2, 99, 4, 99, 6, 99, 8, 99, 10]
列表的删除
  1. del 根据下标删除元素
d1 = ["孙悟空","猪八戒","沙悟净","唐僧","糖糖"]
del d1[-1]
print(d1)

运行结果:

['孙悟空', '猪八戒', '沙悟净', '唐僧']
  1. .remove 根据元素的值删除元素,如果元素重复,删除第一个匹配到的
r1 = list(range(0,11))
print(r1)
r1.remove(9)
print(r1)  

r2 = [1,2,3,4,4,5,5,4,5]
print(r2)
r2.remove(5)
print(r2)

运行结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 10]
[1, 2, 3, 4, 4, 5, 5, 4, 5]
[1, 2, 3, 4, 4, 5, 4, 5]
列表的清空

方法一:
python
x = [1,2,3,4,5]
print(x)
x.clear()
print(x)

运行结果:

[1, 2, 3, 4, 5]
[]

方法二:

  y = [1,2,3]
  y = []
  print(y)

运行结果 :

[]
检索并删除特定的元素

示例:

p = [5,6,3,45,63]
print(p)
p.pop()       #不指定,默认删除最后一个
print(p)
p.pop(0)      #从指定的位置开始删除
print(p)
delp1 = p.pop()    #可以把删除的元素,拿出来赋给一个新的变量
print(delp1)

运行结果:

[5, 6, 3, 45, 63]
[5, 6, 3, 45]
[6, 3, 45]
45
序列的添加
  1. .append() 添加到列表的末尾,每次只能添加一个元素,可以是列表
a = [1,2,3]
a.append("one")
a.append([3,2,1])
print(a)  

运行结果:

[1, 2, 3, 'one', [3, 2, 1]]
  1. .extend() 拓展列表,用于插入序列
e = [1,2,3]
print(e)
e.extend(["qqq"])
print(e)

运行结果:

[1, 2, 3]
[1, 2, 3, 'qqq']
  1. .insert() 插入元素
    示例 :
#方法一
i = [1,2,3]
i.insert(0,"新插入的元素值")
print(i)
#方法二
i2 = [1,2,3]
i2[2:3] = ["新插入的元素"]
print(i2)

运行结果:

['新插入的元素值', 1, 2, 3]
[1, 2, '新插入的元素']  
序列的复制
  1. .copy() 复制
    示例:
c3 = [0,1,2,3,4,5,6,7,8,9,10]
c4 = c3.copy()
c4[1] = 99
print(c3)
print(c4)

运行结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 99, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  1. 序列[:]
    示例:
c3 = [0,1,2,3,4,5,6,7,8,9,10]
c5 = c3[:]
c5[2] = 99
print(c3)
print(c5)

运行结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 1, 99, 3, 4, 5, 6, 7, 8, 9, 10]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值