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

列表 元组 range

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

1.列表

定义

列表--list--容器

有序,可变,支持索引

列表:存储数据类型很多,字符串,数字, 布尔值,列表,集合,元祖,字典.

定义一个列表:

lst = ["dsb",123,True,"黑哥"]    # 用逗号分隔的是一个元素

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

lst[0] = "dsb"
print(lst)      # ['dsb', 123, True, '黑哥']

s = "alex"      # 字符串是不可变数据
s = "wusir" 
s[0] = "b"
print(s)

列表的增,删,改,查

增加

lst = ["dsb",123,True,"黑哥"]

lst.append("大煎饼")   # 追加(在列表的最后位置追加一个内容)
print(lst)            # ["dsb",123,True,"黑哥","大煎饼"]

lst.insert(2,"wusir") # 插入  以后尽量不要使用(当数据量比较大的时候会影                         响效率)                
print(lst)           # ["dsb",123,"wusir",True,"黑哥"]

lst.extend("可迭代的内容")  #迭代添加
print(lst)           # ['dsb', 123, True, '黑哥', '可', '迭', '代',                        '的', '内', '容']

删除

lst = ["dsb",123,True,"黑哥"]

lst.pop()     # 弹--默认删除最后一个
print(lst)    # ['dsb', 123, True]

lst.pop(2)    # 通过指定索引进行删除
print(lst)    # ["dsb",123,"黑哥"]
#通过pop删除,有返回值返回的是被删除的元素

#lst = ["dsb",123,"dsb",True,"黑哥"]
lst.remove("dsb")  # 移除 -- 通过元素名字进行删除
print(lst)         # [123,"dsb",True,"黑哥"]
 
del lst[0]         # 通过索引删除
print(lst)         # [123,True,"黑哥"]

del lst[0:3]       # 通过切片删除
print(lst)         # ["黑哥"]

del lst[0:3:2]     # 通过步长删除
print(lst)         # [123, '黑哥']

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

lst = [123,"dsb",True,"黑哥"]

lst[1] = "123"          # 通过索引改变
print(lst)              # [123, '123', True, '黑哥']

lst[1:2] = "12345"      # 通过切片改变,且此方法改变结果为迭代方式
print(lst)              # [123, '1', '2', '3', '4', '5', True, '黑                           哥']                   

lst[1:4] = 12,13,14,15  # 通过切片改变,但此方法不迭代
print(lst)              # [123, 12, 13, 14, 15]
# 切片改变列表,元素可以超出切片的位数

lst[1:4:2] = "12"/1,2   # 通过步长改变,步长不为1的必须一一对应,多一                             个也不行,少一个也不行
print(lst)              # [123, '1', True, '2']

for 循环

lst = ["dsb",123,"dsb",True,"黑哥"]
for i in lst:
    print(i)            # dsb
                          123
                          dsb
                          True
                          黑哥

列表的嵌套

lst = [1,"alex","春生","小东北","渣弟",["大黑哥",["常鑫",["自行车"],"大煎饼","掉井盖","三金"],"冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]

用索引的方式找到"自行车"
print(lst[-1][1][1][0])       # "自行车"

a = lst[-1][-1][-2]
print(a)                      # 吴超

# 不管什么类型,进行切片的时候获取到的都是原数据类型
# 取值通过索引进行取值,一层一层的进行查找

2.元组

定义

元组 -- tuple

有序,不可变,支持索引

只能索引查看和for查看,不能进行增删改

元组用于存储一些比较重要的信息

元组在配置文件中会使用

元组就是不可变的列表

定义一个元组:

tu = (1,"alex",True,"大黑哥",[1,2,3])
lst = [1,"alex",True,"大黑哥",[1,2,3]]
print(tu)            # (1, 'alex', True, '大黑哥', [1, 2, 3])

tu = (1,"alex",True,"大黑哥",[1,2,3])
print(tu[0:6])       # (1, 'alex', True, '大黑哥', [1, 2, 3])

for 循环
for i in tu:
    print(i)         # 1
                       alex
                       True
                       大黑哥
                       [1, 2, 3]

3.range

定义

range -- 范围

print(list(range(0,10)))      # 顾头不顾尾

python2 和 python3 中的区别

Python3 中的 range 是一个可迭代对象,写的是怎样打印的时候就是怎样

Python2 中的 range 返回的是一个列表

range的使用

print(list(range(0,10,1)))     # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
                               # 步长不写得时候默认为1  [0:10:1]
print(list(range(10,-2,-1)))   # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1,                                    0, -1]
                               # 步长不写得时候默认为1  [10:-2:-1]
print(list(range(10)))         # 步长不写得时候默认为1  [:10]

使用for循环和range

打印 100 - 1
for i in range (100,0,-1):
    print(i)

打印 1 - 100的所有奇数
for i in range(1,101,2):
    print(i)
    
打印 1 - 100的所有偶数
for i in range(0,101,2):
    print(i)
    
打印 1 - 100的所有被6整除的数
for i in range(0,101,6):
    print(i)
    
让用户输入姓名,并在第三次输入后停止输入,打印出所有输入的名字.

使用 while 循环

lst = []
flage = True
while flage:
    name = input("请输姓名:")  # 请输姓名:agag
    lst.append(name)          # 请输姓名:garag
    if len(lst) == 3:         # 请输姓名:garg
        flage = False         # ['agag', 'garag', 'garg']
print(lst)  

使用 for 循环和range

lst = []
for i in range(3):
    lst.append(input("请输入姓名:"))
print(lst)
# 请输入姓名:sssht
# 请输入姓名:shtst
# 请输入姓名:hst
# ['sssht', 'shtst', 'hst']