有序,可变,支持索引python
lst = ['alex',123,True] # 用逗号分割的是一个元素 print(lst) # 结果是['alex',123,True] print(lst[0]) print(id(lst[0])) # id获取对象的内存地址 lst[0] = "dsb" print(lst) # ['dsb', 123, True, '黑哥'] # s = "alex" # 字符串是不可变数据 # s = "wusir" # s[0] = "b" # print(s)
# lst.append("大煎饼") #追加(在列表的最后位置添加一个内容) # print(lst)
insert()之后尽可能不要使用(当数据量比较大的时候会影响效率)面试
# lst.insert(2,"wusir") #插入 之后尽可能不要使用(当数据量比较大的时候会影响效率) # print(lst)
# lst.extend("可迭代的内容") # 迭代添加 # print(lst)
# del lst[0] # 经过索引删除 # print(lst) # del lst[0:3] # 经过切片删除 # print(lst) # del lst[0:3:2] # 经过步长删除 # print(lst)
# lst = ["dsb",123,"dsb",True,"黑哥"] # lst.remove("dsb") # 移除 -- 经过元素名字进行删除 # print(lst)
pop(0):能够指定索引删除app
ret = lst.pop(0) :能够返回被删除的元素code
# lst.pop() # 弹 -- 默认删除最后一个 # print(lst) # lst = ["dsb",123,True,"黑哥"] # lst.pop(2) # 经过指定索引进行删除 # print(lst)
# lst.clear() #清空 # print(lst)
lst = ['杨紫','高圆圆','刘亦菲','关晓彤'] lst[0] = '杨幂' # 经过索引修改 print(lst) ***** lst[0:3] = '你好美11111111' # 被迭代进来的,数字和布尔值不行,主要是索引取得留下谁 :123456(不能运行) 1,2,3,4,5,6(可运行行) "123456"(可运行) print(lst) # ['你','好','美',’1',....,'1','关晓彤'] lst[0:4:2] = '好嗨哦' # 运行错误 lst[0:4:2] = '好嗨' #后面的内容数量必须与切片的数量相等 print(lst) # ['好','杨紫','嗨','刘亦菲']
# for 循环 # lst = ["dsb",123,"dsb",True,"黑哥"] # for i in lst: # print(i)
lst = ['你', '好', '啦', '啊'] lst.append('牛') print(lst) lst.insert(1, '牛一') print(lst) lst.extend('你好') print(lst) lst.pop(1) print(lst) lst.remove('牛') print(lst) lst1 = ['asd', 'dfg'] lst1.clear() print(lst1) lst[4] = '朱' print(lst) lst[0:4] = '12' print(lst) lst[0::2] = '36' print(lst) for i in lst: print(i)
经过索引进行取值对象
无论什么类型进行切片的时候获取到的都是原数据类型索引
# a = lst[-1][-1][-2] # print(a) # 无论什么类型进行切片的时候获取都到都是源数据类型 # lst = [1,"alex","春生","小东北","渣弟", # ["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"], # "冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]] # print(lst[-1][1][1][0])
元组——tuple内存
有序,不可变,支持索引rem
元组(tuple)其实就是一个不能够修改的列表字符串
for语句查input
也能够用索引,能够用切片,也能够加步长,元组切片结果也是元组
元组不能进行修改,不可变
元组用于存储一些比较重要的信息,元组在配置文件中会使用,存放一些用户密码的时候
常量也是在配置文件中使用
转成列表再进行修改
# tu = (1,"alex",True,"大黑哥",[1,2,3]) # lst = [1,"alex",True,"大黑哥",[1,2,3]] # print(tu) # tu = (1,"alex",True,"大黑哥",[1,2,3]) # print(tu[0:6]) # for 循环 # for i in tu: # print(i)
range——范围
print(list(range(0,10))) 顾头不顾尾
面试题
python3中range(0,10) 是一个可迭代的对象,写得是怎样的打印的时候就是怎样 :print(range(0,10)) # 结果是 range(0,10)
print(list(range(0,10)))# 结果是[0,1,2,3,4,5,6,7,8,9]
python2中 的 range 获取到一个列表
range(0,10) # 结果是[0,1,2,3,4,5,6,7,8,9]
xrange和python3中range是类似的,都是可迭代对象,返回结果是 range(0,10)
range 和切片同样:range 第一个是起始位置,第二个是终止位置,第三个是步长,步长默认为1,终止位置和切片同样都是顾头不顾尾,他们之间用逗号分开
print(list(range(1,10,3))) # 结果是 [1,4,7] print(list(range(10,-2,-1))) # 结果是 [10,...,-1] print(list(range(10))) # 结果是 [0,1,...,9]
做用:range #能够让for循环数字
for i in range(55): print(i) # 结果是打印 1到54 for i in range(100, 0, -1): print(i) # 使用for循环和range 打印 100 ~ 1 # for i in range(100,0,-1): # print(i) # for i in range(1,101,2): # print(i) # for i in range(0,101,2): # print(i) # for i in range(0,101,6): # print(i)
range 不能和while一块儿使用
# 错误示例: # while range(0,10): # print(1)
# lst = [] # flage = True # while flage: # name = input("请输姓名:") # lst.append(name) # if len(lst) == 3: # flage = False # print(lst) # lst = [] # for i in range(3): # lst.append(input("请输入姓名:")) # print(lst)