python列表的内置方法
列表基本方法
# 列表内一般会存储相同数据类型的数据
# 类型转换 数据类型关键字(需要转换的数据)
# print(list(123)) # 报错
# print(list(123.33)) # 报错
print(list('hello world')) # ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
print(list({'name': 'elijah', 'pwd': 123})) # ['name', 'pwd']
print(list((11, 22, 33))) # [11, 22, 33]
print(list({11, 22, 33})) # [33, 11, 22]
list关键字可以将支持for循环的数据类型转换成列表
列表修改、添加数据
# 1.修改值
name_list = ['elijah', 'jason', 'kevin', 'egon']
name_list[0] = 777 # [777, 'jason', 'kevin', 'egon', 666]
# 2.添加值
# 尾部添加
name_list.append(666)
print(name_list) # [777, 'jason', 'kevin', 'egon', 666]
name_list.append([11, 22, 33, 44])
print(name_list) # [777, 'jason', 'kevin', 'egon', 666, [11, 22, 33, 44]]
# 插入元素,指定索引位置插入
name_list.insert(1, '嘿嘿')
print(name_list) # [777, '嘿嘿', 'jason', 'kevin', 'egon', 666, [11, 22, 33, 44]]
# 扩展元素(相当于for循环 + append操作)
name_list.extend([11, 22, 33, 44, 55])
print(name_list) # [777, '嘿嘿', 'jason', 'kevin', 'egon', 666, 11, 22, 33, 44, 55]
列表删除数据
# 方式1 通用删除方法
name_list = ['elijah', 'jason', 'kevin', 'egon', 'tony', 'amy']
del name_list[1] # 根据索引删除 del 是关键词delete缩写
print(name_list)
# 方式2 remove() 括号内指定需要移除的元素值
name_list.remove('elijah')
print(name_list)
# 方式3 pop() 括号内指定需要弹出的元素索引值 括号内不写参数则默认弹出列表尾部元素
name_list.pop(1)
print(name_list)
name_list.pop()
print(name_list)
可变类型&不可变类型
# 字符串使用内置方法过后,id地址改变
s1 = 'my name is elijah'
print(id(s1))
s2 = s1.upper()
print(id(s2))
# 列表经过修改后,内存地址id依旧是一致的
name_list = ['elijah', 'jason', 'egon', 'kevin']
print(id(name_list))
name_list.remove('elijah')
print(name_list.remove('jason')) # 打印出来的是None
print(id(name_list))
可变类型:>> 列表,字典
值改变,内存地址不变, 修改的是原值
不可变类型:>> 整型,浮点型,字符串
值改变,内存地址肯定变,其实是产生了新值
堆栈与队列
# 堆栈:FILO 先进后出
while True:
res = input('输入姓名(q退出)')
if res == 'q':
break
list1.append(res)
print(list1)
while list1:
res1 = list1.pop()
print(res1)
# 队列:FIFO 先进先出
while True:
res = input('输入姓名(q退出)')
if res == 'q':
break
list1.append(res)
print(list1)
while list1:
res1 = list1.pop(0)
print(res1)