列表 元组 range

2019 年 7 月 9 日

列表———list------容器

**列表:存储数据,支持多个数据类型,比如 :字符串 数字 布尔值 列表 集合 元组 **

​ 特点 : 有序 可变 支持索引

(定义一个列表不要用list,一般使用 lst)

# lst = ["alex",123,True]    #用逗号分隔的是一个元素
# print(lst[0])              #索引
# print(id(lst[0])           #肉眼可见的是 0 这个位子的 alex ,其实真正的内存地址是一长串的数字
                           #id 获取的是对象的内存地址

#**可变说的是列表可变,但是字符串不可变**. 
下面列举一下

#字符串
# s = "alex"
# s[0] = "b"
# print((s))               #'str' object does not support item assignment  直接报错  列表规则不能适用于字符串
                         #目前我的理解就是内存地址在字符串中是不可变的,但是对于字符串中 replace
                         # 来说只是拓展了新的内存空间,而不是在原有的基础上改变
#列表
# lst = ["alex",123,True]
# lst[0] = "dsb"
# print(lst)               #['dsb', 123, True]

列表的增加

#lst.append()       #追加 在列表的最后位置添加一个内容
lst = ["alex",123,True]
lst.append("大煎饼")
print(lst)          #['alex', 123, True, '大煎饼']  
#lst.insert()       #插入   以后尽量不要使用   当数据比较大的时候会影响效率

lst = ["alex",123,True]
lst.insert(2,"大煎饼")   #在 2 这个位置上添加"大煎饼"
print(lst)           #['alex', 123, '大煎饼', True]
#lst.extend()     迭代添加      括号里的是可迭代的对象,不能放数字和布尔值    利用for 循环
lst = ["alex",123,True]
lst.extend("今天天气真好")   #列表是将一个一个元素拆开,在列表中展示,只有从后面加入,在前面添加位置输出都不对
print(lst)         #结果   ['alex', 123, True, '今', '天', '天', '气', '真', '好']

删除

lst.pop()      # 弹  默认删除最后一个
lst = ["alex",123,True]
lst.pop()
print(lst)
#lst.pop()      # 通过指定索引进行删除    超过范围会报错
lst = ["alex",123,True]
lst.pop(1)
print(lst)
# lst.remove()    #移除            通过元素名字进行删除    要有重名就删除第一个,只删除一个
lst = ["alex",123,True]
lst.remove(123)
print(lst)     #['alex', True]
lst = ["alex",123,True]
del lst[0]                         #  删除第一个元素  通过索引删除
print(lst)    #[123, True]
lst = ["alex",123,True]
del lst[0:2]                          #通过切片删除前两个
print(lst)
lst = ["alex",123,True,"大黑哥",789,7890]
del lst[0:3:2]                         #通过步长删除  
print(lst)                             #[123, '大黑哥', 789, 7890]        
#lst.clear()            清空
lst = ["alex",123,True,"大黑哥",789,7890]
lst.clear()
print(lst)                                 #  输出   []   

通过索引 切片 步长 修改

lst = ["alex",123,True,"大黑哥",789,7890]
lst[1] = "123"      #通过索引修改
print(lst)          #['alex', '123', True, '大黑哥', 789, 7890]  
lst = ["alex",123,True,"大黑哥",789,7890]
lst[1:4] = "123"                #通过切片修改     后面的不可以是数字和布尔值  因为这是利用了 for 循环
#lst[1:4] = "123456789"          元素可以超过切片的位数,不报错,强盗式插入,
                            ['alex', '1', '2', '3', '4', '5', '6', '7', '8', '9', 789, 7890]
print(lst)                 #['alex', '1', '2', '3', 789, 7890]
lst = ["alex",123,True,"大黑哥",789,7890]  #通过步长修改
# lst[1:4:2] = "123"      这个报错  步长不为1 的时候必须用几个位置写几个位置 必须一一对应
lst[1:4:2] = "12"         # ['alex', '1', True, '2', 789, 7890]   步长不为1 的时候必须用几个位置写几个位置
print(lst)                #['alex', '1', '2', '3', 789, 7890]

lst = ["alex",123,True,"大黑哥",789,7890]
for i in lst:
    print(i)
#
alex
123
True
大黑哥
789
7890
  

列表的嵌套

lst=[1,"alex","春生","小东北","渣弟",["大黑哥","冯强","海峰",["太白金星","女神","吴超",["肖锋"]]]]
lst[-1][-1][-2]

元组-----tuple

  1. 有序,不可变 ,支持索引
  2. 用于存储一些比较重要的信息
  3. 元组在配置文件中使用
  4. 元组就是不可变列表

除了不可变这就省去了列表中增删改哈哈 ,只剩下了查

#定义的方式
tu = (1,"alex","大黑哥",[123])
print(tu)                #来一个对比    (1, 'alex', '大黑哥', [123])

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

tu = (1,"alex","大黑哥",[123])
for i in tu:
    print(i)  
    
#
1
alex
大黑哥
[123]    
    
    
    

range———范围

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

print(list(range (0,(10))))
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Python2中获取的是一个列表,顾头不顾尾

print(range (0,10))
#[0,1,3,4,5,6,7,8,9]

其他性质

步长不写的时候默认为 1 步长也是有方向的

range(起始位置,终止位置,步长)

print(list(range(10,0,-1)))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
# 使用 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(2,101,2):
#     print(i)
#被 6 整除
for i in range(0, 101, 6):
    print(i)
posted @ 2019-07-09 17:39  挂机兄  阅读(167)  评论(0编辑  收藏  举报