Python3列表基础

列表格式

1 # 列表格式
2 # 列表定义采用[],内部以逗号进行分割,列表元素可以是任意类型,比如字符串、数字、字典、bool、元组、列表
3 list1 = [1, 'a', {}, True, ('a'), [1, 2, 3]]
4 print(list1)

  输出:

1 [1, 'a', {}, True, 'a', [1, 2, 3]]

列表嵌套

1 # 列表嵌套,列表内部可以无限制嵌套列表
2 print("列表嵌套.......")
3 ll = [1, 2, 4, 5, ['a', 1231, 56], 'abcd']
4 print(ll)

  输出:

1 列表嵌套.......
2 [1, 2, 4, 5, ['a', 1231, 56], 'abcd']

列表取值

索引取值

1 # 索引取值,通过索引进行取值,第一个位置为0,列表取值有边界,索引值超过边界后会报IndexError
2 print("通过索引取值......")
3 ll = [1, 2, 4, 5, ['a', 1231, 56], 'abcd']
4 v1 = ll[0]
5 v2 = ll[4]
6 print(v1)
7 print(v2)
8 # print(ll[10])  #索引超过列表长度会报错

  输出:

1 通过索引取值......
2 1
3 ['a', 1231, 56]

  #可以通过索引对嵌套的列表进行取值。

1 # 对列表中嵌套的列表中的进行取值
2 print("对列表中嵌套的列表中的进行取值....")
3 l5 = [1, 2, 3, ['asdf', 4, ['faef', 3], 5], 7]
4 print(l5[3])
5 print(l5[3][2])
6 print(l5[3][2][0])   #当前到的是一个字符串
7 print(l5[3][2][0][1]) #对字符串进行索引取值

  输出:

1 对列表中嵌套的列表中的进行取值....
2 ['asdf', 4, ['faef', 3], 5]
3 ['faef', 3]
4 faef
5 a

 

切片取值

 1 # 切片取值
 2 print("通过切片取值......")
 3 ll = [1, 2, 4, 5, ['a', 1231, 56], 'abcd']
 4 v1 = ll[0:2]
 5 v2 = ll[3:]
 6 v3 = ll[:-1]
 7 v4 = ll[-2:]
 8 print(v1)
 9 print(v2)
10 print(v3)
11 print(v4)

  输出:

1 通过切片取值......
2 [1, 2]
3 [5, ['a', 1231, 56], 'abcd']
4 [1, 2, 4, 5, ['a', 1231, 56]]
5 [['a', 1231, 56], 'abcd']

列表循环

# 列表循环,列表可以通过for和while循环,同样的循环也支持continue和break

for循环

1 # for循环
2 print("for循环测试")
3 ll = [1, 2, 4, 5, ['a', 1231, 56], 'abcd']
4 for item in ll:
5     if item == 2:  # 当列表元素值等于2时直接进行下一个循环
6         continue
7     print(item)

   输出:

1 for循环测试
2 1
3 4
4 5
5 ['a', 1231, 56]
6 abcd

while循环

1 # while循环
2 print("while循环测试")
3 ll = [1, 2, 4, 5, ['a', 1231, 56], 'abcd']
4 n = 0
5 while n < len(ll):
6     if ll[n] == 5:
7         break
8     print(ll[n])
9     n += 1

  输出:

1 while循环测试
2 1
3 2
4 4

列表值修改

# 列表值修改,可以通过索引对列表元素进行重新赋值,也可以通过切片方法对列表元素值进行修改

索引法修改

1 # 索引法修改
2 print("通过索引进行值修改.....")
3 l1 = [1, 2, 3, 4, 5, 6, [7, 8, 9]]
4 print('修改前:', l1)
5 l1[1] = 'asdf'
6 print('修改后:', l1)

  输出:

1 通过索引进行值修改.....
2 修改前: [1, 2, 3, 4, 5, 6, [7, 8, 9]]
3 修改后: [1, 'asdf', 3, 4, 5, 6, [7, 8, 9]]

 

切片法修改

 1 print("通过切片进行值修改.....")
 2 # 切片法修改
 3 l2 = [1, 2, 3, 4, 5, 6, [7, 8, 9]]
 4 # l1[2:4] = 1  # 报错,采用切片进行修改是值必须也是列表类型
 5 print('修改前的l2[2:4]: ', l2[2:4])
 6 l2[2:4] = [2, 2]
 7 print('修改后的l2[2:4]: ', l2[2:4])
 8 print('修改前的l2[4:]:', l2[4:])
 9 l2[4:] = [2, 2]
10 print('修改后的l2[4:]:', l2[4:])

  输出:

1 通过切片进行值修改.....
2 修改前的l2[2:4]:  [3, 4]
3 修改后的l2[2:4]:  [2, 2]
4 修改前的l2[4:]: [5, 6, [7, 8, 9]]
5 修改后的l2[4:]: [2, 2]

 

列表值删除

del删除

1 # 列表值删除,基础删除方法可以采用del通过索引或切片删除列表元素
2 print('del删除列表元素......')
3 l3 = [1, 2, 3, 4, 5, 6, [7, 8, 9]]
4 print("删除元素前的列表", l3)
5 del l3[1]
6 print("通过索引删除元素[1]:", l3)
7 del l3[2:4]
8 print("通过切片删除元素[2:4]:", l3)

  输出:

1 del删除列表元素......
2 删除元素前的列表 [1, 2, 3, 4, 5, 6, [7, 8, 9]]
3 通过索引删除元素: [1, 3, 4, 5, 6, [7, 8, 9]]
4 通过切片删除元素: [1, 3, 6, [7, 8, 9]]

 

列表in操作

1 # 列表in操作
2 print("列表的in操作....")
3 l4 = [1, 2, 3, 4, 5, 6, [7, 8, 9]]
4 print(l4)
5 v = 2 in l4
6 print(v)

  输出:

1 列表的in操作....
2 [1, 2, 3, 4, 5, 6, [7, 8, 9]]
3 True

 字符串转换为列表

  python中字符串可以转换为列表,数字类型不能转换为列表。

1 # python中字符串可以转换为列表,数字类型不能转换为列表。
2 # 字符串转换为列表,实际上将列表进行循环,将每个字符添加到一个列表中。
3 s = 'sdfasdfasdf'
4 lv = list(s)
5 print(lv)

  输出:

1 ['s', 'd', 'f', 'a', 's', 'd', 'f', 'a', 's', 'd', 'f']

列表转换为字符串

  列表转换为字符串可以分2种情况,一种为列表中的元素全部是由字符串构成,另一种列表中混合了数字和字符串。

字符串构成的列表转换为字符串

1 # 字符串构成的列表转换为字符串,可以采用join方法进行转换,但是列表中不能再嵌套列表
2 print("字符串构成的列表转换为字符串.....")
3 l6 = ['a', 'b', 'c', 'd', '123', '456']
4 lv6 = ''.join(l6)
5 print(l6)
6 print(lv6)

  输出:

1 字符串构成的列表转换为字符串.....
2 ['a', 'b', 'c', 'd', '123', '456']
3 abcd123456

 

数字和字符串混合的列表转换为字符串

 

posted @ 2018-04-07 15:22  忙碌的捕快  阅读(118)  评论(0)    收藏  举报
levels of contents