列表,元组,range

列表:格式[],内部用逗号隔开,对数据没有类型要求,列表可以增删改查,索引,切片.

列表需要定位元素的下标,才能用replace()方法,replace()的参数必须是字符串

索引和切片:

lst = ["天龙八部","西游记","红楼梦","银瓶煤"]
print(lst[3])
print(lst(-3)]
print(lst[1:4])  #切片,原来是什么类型,就得到什么类型
print(lst[-1::-2])

嵌套:

lst = [["张艺谋", "冯小刚", "陈凯歌"], ["李安", "王家卫", "王晶"], ["周杰伦",["abc", "alex_wusir", ["胡辣汤", "c"]], "风扇哥"]]
lst[1][2]="小脚"
lst[2][1][1]= lst[2][1][1].replace("_","$")
print(lst)

增:

1.append()       #末尾追加  直接再原内容上修改了

2.insert(索引,元素)  #插入指定字符

3.extend["胡辣汤","五花肉","猪头肉","五花肉"]  #把参数进行迭代.每一项添到列表末尾
lst = ["凡人的春天","诛仙","神墓"]
lst.append("看见")
lst.insert(1,"清体")
lst.extend(["胡辣汤","猪蹄子","猪头肉","五花肉"])
View Code

删:

pop(index):删除列表元素,如果没找到索引报错.

list_1 = ["abc",145,True,["小明","小红",278,33.9],25.9]
list_1.pop()  # 默认不写参数是删除末尾元素
print(list_1)
# 打印内容如下:
['abc', 145, True, ['小明', '小红', 278, 33.9]]

 pop(索引,提示信息):根据索引删除列表元素,如果没有打印一条提示信息

list_1 = ["abc",145,True,["小明","小红",278,33.9],25.9]
list_1.pop(1)  #  根据索引删除元素,删除第一个索引元素
print(list_1)
# 打印内容如下:
['abc', True, ['小明', '小红', 278, 33.9], 25.9]

注意pop()删除是有返回值的,可以用一个变量来接收被删除的数据

1.pop(index)      #根据索引删除

2.remove(元素)      #根据元素删除
View Code
lst = ["斗破苍穹","手机","耳机","手表","耳环"]
lst.pop()     #默认从后往前删除1个
lst.pop(下标)     #按下标删除
del lst[::2]       #用切片删除
remove(元素)    #指定元素删除,元素不在报错  列表的第一层可以删,无法进入子层删
lst.clear() #清空

改:

lst[下标]=元素  #下标修改 ,要改的元素类型是int,用这个.

利⽤for循环和range,将1-30的数字⼀次添加到⼀个列表中,并循环这个列表,将能被3整除的数改成*。                                                                                                                                 
s = []
for i in range(1,31):
    s.append(i)
for a in range(len(s)):
    if s[a]%3==0:          
        s[a]="*"      #for循环中,用下标修改的情景-.-!
print(s)

repalce()   #列表不能直接使用此方法,需要先定位元素的下标,而且元素类型不能是int,而且此方法的old和new必须都是字符串类

lst = ["苏秦","武大","五二","宝元","李诞","赤字"]
lst[1:3]=["马哈通"] #通过下标修改                       
lst[1:5:2] = ["麻花藤","码云"] #切片,且步长非1,元素个数须跟切掉个数一致
lst[1] = lst[1].replace("武大","WUSIR")  #replace参数只能是字符串类型

查:

for循环
View Code

列表的其他操作

1.count()    #计数
2.sort(reverse = True)    #反向排序
3.reverse()  #翻转
4.len()      #求长度

================================================================================================================

sorted  对所有可迭代的对象进行排序操作。

参数介绍:
iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
返回值:
返回重新排序的列表。

 filter()   #函数, 用于过滤

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
  参数1为函数,参数2为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回True 的元素放到一个新的可迭代对象地址中。
lst = ["张无忌","张三丰","胡辣汤"]
a = filter(lambda a: "" not in a,lst)
print(list(a))  #返回的是个可迭代地址,所以加个list,提取出来

 list(itable)    #把可迭代对象里面的内容全部取出来,形成一个列表,参数必须是个可迭代对象的地址

元组:

 空元组:(,)  #小括号里有逗号就可以是元组
 元组不可变,但是元组里的可变类型的元素(列表等)能改

================================================================================================================

range(参数1,参数2,参数3)   #每隔(参数3)个位置取一个

fof i in range(10,20,3):
    print(i)
lst = ["周杰伦", "动画城", "大风车", "随便加", "宝宝", "孟孟", "萌萌", "孟萌"]
for item in lst:        #这样写只能拿到元素,获取不到索引
    print(item)
========================
for i in range(len(lst)):     #i 就是下标,lst[i]元素
    print(i,lst[i])

 range(3,6)  结果还是它自己

set()函数:

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

 

posted @ 2018-12-04 21:26  Tank-Li  阅读(268)  评论(0编辑  收藏  举报