day04

1. 列表

1.1 定义(list)

  • 存放一些数据的容器 比如衣柜 书包
  • 列表相比于字符串, 不仅可以存放不同的数据类型.而且可以存放大量的数据
lst = [1, 'a', True, [2, 3, 4]]   #中括号,逗号分开
可以是数字,字符串,布尔值,中文,列表等
  • 32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素

  • 列表是有序的,可以索引和切片

  • print(lst[0])
    print(id(lst[0]))
    id获取对象的内存地址
    

1.2 列表的创建

# 创建一个列表有三种方式:

# 方式一:(常用)
lst = [1, 2, '宝元']

# 方式二:(不常用)
lst = list()  # 空列表
# lst = list(iterable)  # 可迭代对象
lst = list('123')
print(lst)  # ['1', '2', '3']

# 方式三:列表推导式
lst = [i for i in range(1,5)]
print(l1)  # [1, 2, 3, 4]

1.3 列表的索引/切片

lst = ['a', 'b', '宝元', 3, 666]
print(lst[0])    # a
print(lst[-1])   # 666
print(lst[1:3])  # ['b', '宝元']
print(lst[:-1])  # ['a', 'b', '宝元', 3]
print(lst[::2])  # ['a', '宝元', 666]
print(lst[::-1]) # [666, 3, '宝元', 'b', 'a']
  • 索引的一个值没用中括号,,切片结果都有中括号

1.4 增

append() :追加  #(在列表的最后位置添加一个内容) 
insert() :插入  #以后尽量不要使用(当数据量比较大的时候会影响效率) **可以选择插入的位置**
extend() :迭代添加
lst = ["你好","alex","wusir",1,True,"123"]
lst.append("大煎饼")  
print(lst)   #['你好', 'alex', 'wusir', 1, True, '123', '大煎饼']

lst.insert(2,"大煎饼")  
print(lst)   #['你好', 'alex', '大煎饼', 'wusir', 1, True, '123']

lst.extend("可迭代的内容")  # 迭代添加
print(lst)  #['你好', 'alex', 'wusir', 1, True, '123', '可', '迭', '代', '的', '内', '容']
# 练习:输入用户信息, 添加到列表中

lst = []
while True:
    name = input("请输入你要录入的员工信息, 输入Q退出:")
    if name.upper() == 'Q':
        break
lst.append(name)
print(lst)

1.5 删

del lst  -- 删除整个列表
del lst[0] -- 通过索引删除
del lst[1:2] -- 切片删除
del lst[1:4:2] -- 步长删除

clear() :清空列表
remove():通过元素进行删除

pop()
  1. 默认删除最后一个
  2. 有返回值返回的是被删除的元素
  3. 通过索引进行删除
lst = ["你好","alex","wusir",1,True,"123"]
del lst		#强制删除,不存在了
print(lst)  #没有了,报错,lst未定义

del lst[0]   #通过索引删除
print(lst)   #['alex', 'wusir', 1, True, '123']

del lst[0:3] # 通过切片删除
print(lst)   #[1, True, '123']

del lst[0:3:2] # 通过步长删除
print(lst)     #['alex', 1, True, '123']
lst.pop()  #默认删除最后一个
print(lst)  #['你好', 'alex', 'wusir', 1, True]

lst.pop(3)  #通过索引进行删除
print(lst)   #['你好', 'alex', 'wusir', True, '123']
lst.remove("wusir")  #通过元素名字进行删除
print(lst)   #['你好', 'alex', 1, True, '123']

lst.clear()   #清空
print(lst)   #[]

1.6 改 不用重新赋值,与字符串有区别

lst[0] = 1  #通过索引修改
lst[1:2] ="qaaa"   # 通过切片修改,元素可以超出切片的位数
lst[1:4:2] = "12"  # 通过切片和不为1的步长修改,占几个位置就添加几个,必须一一对应
lst = ["你好","alex","wusir",1,True,"123"]
lst[1] = "大黑"
print(lst)   #['大黑', 'alex', 'wusir', 1, True, '123']

lst[1:3] = "345"     # 比切片多  #['你好', '3', '4', '5', 1, True, '123']
lst[1:3] = "大黑"     #一样多  #['你好', '大', '黑', 1, True, '123']

lst[1:3] = "大"    #比切片少
print(lst)       #['你好', '大', 1, True, '123']

lst[1:4:2] = 1,2   #多了少了都会报错
print(lst)      #['你好', 1, 'wusir', 2, True, '123']

  • list和str是不一样的.lst可以发生改变.所以直接就在原来的对象上进行了操作

1.7 查 切片去查,或者for循环去查

1.7.1 列表是一个可迭代对象, 所以可以进行for循环

lst = ["你好","alex","wusir",1,True,"123"]
for i in lst:
print(i)      #
结果:
你好
alex
wusir
1
True
123

lst = ["你好","alex","wusir",[1,True],"123"]
for i in lst:
    print(i)
结果:
你好
alex
wusir
[1, True]
123

1.7.3 通过索引查找

lst = ["你好","alex","wusir",[1,True],"123"]
print(lst[3])    # [1, True]
print(lst[3][1])  # True

1.8 其他操作

lst = ["你好","alex","wusir",1,True,"123"]
反转
lst.reverse()  # 把这个列表进行调转
print(lst)   #['123', True, 1, 'wusir', 'alex', '你好']

lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]

# 排序:必须是数字,其他会报错  
lst.sort()  # 升序 排序
print(lst)  #[1, 2, 2, 2, 2, 3, 4, 5, 8, 11, 84, 88]

lst.sort(reverse=True)  # 降序 排序
print(lst)   #[88, 84, 11, 8, 5, 4, 3, 2, 2, 2, 2, 1]

# 统计
lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
num = lst.count(2)  # 统计元素2出现的次数,和字符串中功能一样
print(num)

# 通过元素获取下标
lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
n = lst.index(88)   #索引,
print(n)            #10

# 获取长度
lst = [1, 2, 3, 4, 84, 5, 2, 8, 2, 11, 88, 2]
print(len(lst))

1.8 列表的镶嵌

lst = ["你好","alex","wusir",[1,True],"123"]
print(lst[3])    # [1, True]
print(lst[3][1])  # True

2. 元组

2.1 定义

  • 元组:不可变的列表,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.与字符串类似

2.2 元组的查

tu = ("你好","alex","wusir",(1,True),"123")
tu1 = tu[1]  # 支持下标
print(tu1)    #alex

tu2 = tu[0:4]   # 进行切片查找
print(tu2)    #('你好', 'alex', 'wusir', (1, True))

tu = ("你好","alex","wusir",(1,True),"123")
for i in tu:
    print(i)  # 进行for循环
结果:
你好
alex
wusir
(1, True)
123

2.3 元组的镶嵌

  • tu = ("你好","alex","wusir",(1,True),"123")
    

3. range

1562664109571

原文地址:https://www.cnblogs.com/lvweihe/p/11160211.html