欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

列表,元组以及range

程序员文章站 2022-07-14 22:51:37
...

列表,元组以及range

一.列表(list)

列表是数据类型之一,它有序,可变,支持索引

作用:存储数据,支持的数据类型很多:字符串,数字,布尔值,列表等

# 定义一个列表
lst = ['alex',123,True,'列表']      用逗号分隔的是一个元素

#print(id(lst[0]))      --   获取元素的内存地址

1.增

lst = ['alex',123,'wusir',456]

# 追加 : 在列表的最后一个位置添加一个内容
lst.append('000')
print(lst)     #['alex',123,'wusir',456,'000']

# 插入 :尽量不要使用(当数据量比较大的时候会影响效率)
lst.insert(1,'000')
print(lst)   #['alex','000',123,'wusir',456]

#迭代添加   ("可迭代对象")
lst.extend('000')
print(lst)  #['alex',123,'wusir','0','0','0']

2.删

lst = ['alex',123,'wusir',456]

# 弹   默认删除最后一个;有返回值,返回的是被删除的元素;可通过指定索引进        行删除
lst.pop(2)
print(lst)   #['alex',123,456]

# 移除  通过元素名字进行删除
lst.remove('wusir')
print(lst)  #['alex',123,456]

# del
del lst[2]      -- 通过索引删除
print(lst)  #['alex',123,456]
del lst[0:3]    -- 通过切片删除
print(lst)  #[456]
del lst[0:3:2]  -- 通过步长删除
print(lst)  #[123,456]

#清空 --清空列表
lst.clear()
print(lst)  #[]

     

3.改

lst = ['alex',123,'wusir',456]

# 通过索引修改
lst[2] = "太白"
print(lst)    #['alex',123,'太白',456]

# 通过切片修改(迭代,新的元素可以超出切片的位数)
lst[0:3] = "太白金星"
print(lst)    #['太','白','金','星',456]

# 通过步长修改(迭代,新的元素和位置必须一一对应)
lst[0:3:2] = "太白"
print(lst)    #['太',123,'白',456]

4.查

lst = ['alex',123,'wusir',456]

使用for循环进行查找
for i in lst:
    print(i)      #alex
                   123
                   wusir
                   456
通过索引查找
print(lst[1])    #123

5.列表的嵌套

# 通过索引取值

lst = [1,'太白','wusir',['麻花疼',['可口可乐'],'王健林']]

找到wusir
print(lst[2])

找到太白和wusir
print(lst[1:3])

找到可口可乐
print(lst[-1][-2][0])

找到太白的白字
print(lst[1][-1])

二.元组(tuple)

元组是有序的,不可变,支持索引,是一个不可变的列表

作用:用于存储一些比较重要的信息,在配置文件时会使用.

s = ('abc',123,'alex',456)

元组不能增删改,可以查(使用for循环)

三.range(范围)

print(list(range(0,10)))  #[0,1,2,3,4,5,6,7,8,9]
                          # 顾头不顾尾
range(起始位置,终止位置)
range(终止位置)
range(起始位置,终止位置,步长)


for和range配合使用
例:打印100~1
for i in range(100,0,-1):
    print(i)
 
打印1~100所有偶数
for i in range(0,101,2):
    print(i)
    
让用户输入三次姓名然后用列表打印出来
# while循环
lst = []
a = True
while a:
    name = input("请输入姓名:")
    lst.append(name)
    if len(lst) == 3:
        a = False
print(lst)

#for循环
lst=[]
for i in range(3):
    lst.append(input('请输入姓名:'))
print(lst)

python2和python3的区别

  • python2的range是返回一个列表(xrange和python3中的range是相似的)
  • python3的range是一个可迭代对象,写的是怎样打印的时候就是怎样

ps:

面试题:
    
lst = []
for i in lst:
    lst.append('alex")
    print(lst)               #不会打印内容(lst是空的)
               
lst = [1,2]
for i in lst:
    lst.append('alex')
    print(lst)             #循环打印lst中的内容(死循环)
               
lst = [1,2]
for i in lst:
    lst.append('alex')
print(lst)                  #死循环(不会打印内容)
               
lst = []
for i in range(5):
    lst.append([])
print(lst)                 #[[],[],[],[],[]]

lst = [1,2]
lst[0] = lst
print(lst)                   #[[...],2]