Python基础-day04
字符串是有序的
列表是有序的
元组是有序的
字典
python2中 无序
python3中 有序
集合是无序的
列表 - 增
# 追加到最后
li.append(元素)
# 插入到某个位置
li.insert(4, 'aa')
在index为4的地方插入aa(原来index为4的元素会向后移动一位)
谋朝篡位
# extend的参数必须是可迭代的对象,否则报错
li = ['a', 'b', 'c', 'd']
li.extend([1, 2, 3])
li.extend('haha')
print(li)
['a', 'b', 'c', 'd', 1, 2, 3, 'h', 'a', 'h', 'a']
列表 - 删
name = li.pop(1) # 删除index为1的元素,同时返回这个元素
print(name) # 打印b
print(li) # 打印['a', 'c', 'd'],因为删除了一个
li.pop() # 如果不指定index值,则默认删除最后一个元素
li.remove('a') # 按指定元素删除,无返回值
li.clear() # 清空列表
del li # 在内存中删除这个对象,li不会保留
del li[0:2] # 切片去删除,只是删除部分元素,li还是会保留
列表 - 改
li[0] = 'haha' # 按单个index改
此时li为['haha', 'b', 'c', 'd']
能改成任何数据类型
li[0:2] = '查克拉'
# 首先将列表li中的li[0]和li[1]删除,然后将字符串'你好悟空'拆开,最后将拆开的元素放入原先li[0]和li[1]的位置。
注意:如果使用切片的方式来修改列表,那么后面的值必须是可迭代对象,否则报错。


总共就两种方式:直接指定索引,或者按照切片的方式。
li[0]
li[0:2]
列表 - 查
略
公共方法
len()
count()
排序
# 将li按照升序排序
li = [1, 4, 3, 2, 5, 7, 6]
li.sort()                             
print(li)
[1, 2, 3, 4, 5, 6, 7]
# 将li按照降序排序
li.sort(reverse=True)       
print(li)
[7, 6, 5, 4, 3, 2, 1]
# 反转
li.reverse()                      
print(li)
[1, 2, 3, 4, 5, 6, 7]
排序和反转要弄清楚,一个是要排序,一个是要将顺序倒过来。
列表的嵌套
元组(总原则,元组不能改)
只读列表,可循环查询,可切片。
# 儿子不能改,孙子可能可以改。


一级元素不能改,二级元素可能可以改。
二级元素如果是列表,那它可以改;
二级元素如果是元组,那它不能改;


我们改的tu[4]是一个列表,所以能改。
join方法


join的参数s必须是可迭代对象,否则报错。
'_'表示用什么连接,这里用'_'连接每个元素。
先将可迭代对象拆开,然后用'_'连接每个元素。
# join返回的是字符串
让列表转化为字符串。
让元组转化为字符串。
唯一要注意的是:列表和元祖中的元素只能是字符串,不能是数字,否则报错。
[1, 2]
# 报错
[1, 'a']
# 报错
['a', 'b']
# 正确
list 转 str
采用join方法
str 转 list
采用split方法
range()
range(100)
打印从0 到 99
range(0, 100)
打印从0 到 99
range(5, 100)
打印5 到 99
range(5, 100, 5)
打印5 10 15 20 25 ...
range(0, 10, -1)
# 这是错误的写法,因为从0到10,是正方向,所以-1不对。
关于range()的说明:
range(start, end, step)
开始处
结束处
步长

我们选择的start和end,可以任意选择。从上面的坐标轴上选择。
如果start是0,end是10,那么方向就是向右,我们的步长必须是正数,因为正数才是向右。假设步长为1,则结果为:


如果步长是-1,则不会输出结果,因为反方向啥也没有。所以什么都不会输出,但也不报错。

如果想要使用反方向,那么就要将end值设置为负数,这样,才会有反方向:


总结:我们选择的start和end值就决定了我们的步长是正数还是负数。
从start到end是反方向,那么step就必须是负数,否则什么值也不会打印。
从start到end是正方向,那么step就必须是正数,否则什么值也不会打印。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号