列表 元组 range

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']
posted @ 2019-07-09 17:02  边城bei  阅读(129)  评论(0编辑  收藏  举报