列表和元祖

转载https://www.cnblogs.com/hukey/p/9619317.html
列表
1.什么是列表,使用[]来表示,每一个元素使用逗号隔开,
可装大量的数据,类似书包.列表是可以变的数据类型.
lst = ["移动硬盘","手机","false",""]
2.列表的索引和切片
    列表和索引一样也有切片和索引,只不过切出来的还是列表.
    索引的下标是0开始
    [起始位置:结束位置:步长]
3.列表的增删改查
    lst.inser()插入列表元素,指定位置.
    lst.append("黄宏")在列表末尾加入元素.
4,列表的嵌套
lst = ["alex", "gay", "wusir", ["范冰", "李冰",[1,"火锅","lalala", "凤爪"],"王冰冰,"]]
print(lst)
print(lst[3]) #输出['范冰', '李冰', [1, '火锅', 'lalala', '凤爪'], '王冰冰,']
#这个lst(3)实际上是把[范冰]整个列表看成是第一个列表的第三个元素,第0个元素是alex.
print(lst[3][2]) #输出[1,"火锅","lalala", "凤爪"]
print(lst[3][2][1])  #输出火锅
5.列表的排序
    sort 默认升序排序 ,reverse = true 降序排序
    reverse 水平翻转

1,列表

pyton内置的一种数据类型是列表:list.list是一种有序集合,可以随时的添加和删除其中的元素

列表的增删改查

 1.增加

 (A)append 在末尾追加元素

         li = ['xiaofei','xiaoming']

         li.append('zhangsan')

        print(li)

        ['xiaofei', 'xiaoming', 'zhangsan']

(B) insert 在指定索引位置插入元素

1

2

3

4

5

6

li = ['xiaofei''hkey']

li.insert(1'zhangsan')    # 注意第一个参数是int类型的索引位置,第二个参数是插入的元素

print(li)

 

# 执行结果:

# ['xiaofei', 'zhangsan', 'hkey']

 

(C) extend(iterable) 等价于 for i in li.append(i) 在列表的最后追加一个可迭代对象

1

2

3

4

5

6

li = ['xiaofei''hkey']

li.extend('jack')  # 等价于 for i in 'jack': li.append(i) 参数是一个可迭代对象

print(li)

 

# 执行结果:

# ['xiaofei', 'hkey', 'j', 'a', 'c', 'k']

2. 删除

(A) pop(index=None) 返回删除的元素,默认删除最后一个

1

2

3

4

5

6

7

8

li = ['xiaofei''hkey']

name = li.pop() # 删除最后一个元素并获取到删除的元素

print(name) # 最后一个元素是 'hkey'

print(li)

 

# 执行结果:

# hkey

# ['xiaofei']

 

(B) remove(value)    按照元素删除

1

2

3

4

5

6

7

li = ['xiaofei''hkey']

 

li.remove('xiaofei')    # 参数为指定的元素,删除指定元素。

print(li)

 

# 执行结果:

# ['hkey']

 

(C) clear()     清空列表

1

2

3

4

5

6

li = ['xiaofei''hkey']

li.clear()

print(li)

 

# 执行结果:

# []

 

(D) del li 删除li列表

1

2

3

4

5

6

7

li = ['xiaofei''hkey']

del li  # 直接删除内存中的 li 列表

 

print(li)

 

# 执行结果:

# NameError: name 'li' is not defined

 

(E) del li[:2]    切片删除

1

2

3

4

5

6

7

li = ['xiaofei''hkey''zhangsan']

 

del li[:2]  # 删除索引位置 2 之前的元素 [0, 1, 2],不包括 2

print(li)  

 

# 执行结果:

# ['zhangsan']

4. 查询

列表的查询可以直接通过切片或者索引直接查询,也可通过for循环遍历,能够被 for 循环遍历的类型都是可迭代对象;

 

5. 列表排序

(A) 正向排序:sort()

1

2

3

4

5

6

li = [653124]

li.sort()   # 先进行排序,然后在打印列表,正向排序

print(li)

 

# 执行结果:

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

 

(B) 逆向排序: sort(reverse=True)

1

2

3

4

5

6

li = [653124]

li.sort(reverse=True)   # 先进行排序,然后在打印列表,逆向排序

print(li)

 

# 执行结果:

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

 

(C) 反转: reverse()

1

2

3

4

5

6

li = [653124]

li.reverse()    # 反转排序,将元素倒过来。

print(li)

 

# 执行结果:

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

 

6. 公共方法

(A) len() 统计列表共有多少元素

1

2

3

4

5

6

li = ['xiaofei''hkey''jay']

 

print(len(li))

 

# 执行结果:

# 3

 

(B) count() 统计同一个元素,在列表中出现几次

1

2

3

4

5

li = ['xiaofei''hkey''jay''hkey']

print(li.count('hkey')) # 统计同一个元素,在列表中出现几次。

 

# 执行结果:

# 2

 

(C)  index() 通过索引查找元素信息

1

2

3

4

5

6

li = ['xiaofei''hkey''jay''hkey']

 

print(li.index('hkey')) # 通过元素信息查找索引位置,默认获取第一个匹配到的元素索引

 

# 执行结果:

# 1

元祖   是只读列表
  1.使用()小括号表示.不能增改删除操作
  tu = tuple()空元祖的表示
  如果元祖只有一个元素(元素,)
  元祖是一个可以迭代的对象,可以使用for循环
  2.range的使用
    range(n) 从0 到n-1
    range(m,n)从m到n-1
    range(m,n,q)从m到n-1 每q个取一个
    综上就是切片
  3.使用range和for循环来获取列表中的索引
   for i in range(len(列表)):
    i 索引
    列表[i]元素
元祖,只读列表,可循环查询,可切片

因为元祖不可变,所以代码更安全,如果可能,在能用元祖代替列表的地方尽量使用元祖

tuple 元组,只读列表,可循环查询,可切片

因为元组不可变,所以代码更安全。如果可能,能在元组代替列表的地方就尽量使用元组;

1

2

3

4

5

6

7

8

9

# 把 xiaofei 修改为大写

 

tu = (1,2,3,['xiaofei''kk'], 'hkey')

 

tu[3][0= tu[3][0].upper()

print(tu)

 

# 执行结果:

# (1, 2, 3, ['XIAOFEI', 'kk'], 'hkey')

 

元组中的可变类型都是可以修改的,例如:list类型

 

字符串和列表之间的相互转换

列表 -- 字符串  join() 方法

字符串 -- 列表  split() 方法

1

2

3

4

5

6

7

name = ['xiaofei''hkey']

print(''.join(name))    # 以空为分隔符将列表连接成字符串类型

print('*'.join(name))   # 以*为分隔符将列表连接成字符串类型

 

# 执行结果:

# xiaofeihkey

# xiaofei*hkey

 

1

2

3

4

5

s1 = 'xiaofei hkey'

print(s1.split())

 

# 执行结果:

# ['xiaofei', 'hkey']

 

range() 的使用

  第一个参数:int类型

  第二个参数:int类型

  第三个参数:int类型,步长

  遵循取头不取尾的规则

 

(1)循环次数的控制

1

2

3

4

5

6

7

8

# 输出 3 次 hello, world

for in range(3):

    print('hello, world')

 

# 执行结果:

# hello, world

# hello, world

# hello, world

 

(2)数字规则的输出

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 输出 10 以内的 奇数 或者 偶数

 

# 奇数

print(list(range(2102)))

 

# 执行结果:

# [2, 4, 6, 8]

 

 

# 偶数

print(list(range(1102)))

 

# 执行结果:

# [1, 3, 5, 7, 9]

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值