2018-5-31-Python全栈开发day12-列表,字典,元组

1.列表

  列表是以中括号表示, 以逗号分隔。列表内可以嵌套各种,比如说字符串,列表,元组,字典,可以无限嵌套。

  s1=[]

  1.1 索引

    s1=['alex',[123],{123},(123)]

    v1=s1[0]---'alex'

  1.2 切片

    v2=s1[0:3]----['alex', [123], {123}] 

    切片依旧是左闭右开区间。

列表可以进行修改,是迭代器,可以进行for循环和while循环,可以不连续的存在内存当中。

    例:s1[1]=222

      print(s1)

      ['alex',222,{123},(123)]

  1.3 对列表进行判断

    s= 'alex' in s1

    print(s)-----

     True

    其中,列表内的第一级元素是一个整体,只能判断这个整体是否在列表中

2.列表的操作

  2.1  找到列表内元素的子项

s1=['alex',[123,'aa','bb'],{123},(123)]
#找到'aa'
v=s1[1][1]
print(v)

  ----aa

  2.2将字符串转换为列表

    将字符串转换为列表,其内部是通过循环的方式实现的

    比如讲‘alex’转换为列表,则

  

s1='alex'
v1=[]
for i in s1:
    v1.append(i)
print(v1)

输出:['a', 'l', 'e', 'x']

    想要利用这个功能,不能是int数字,因为数字int不是可迭代的。

  2.3 将列表转换为字符串

    2.3.1列表内既有数字又有字符串

     自己写for循环--   +=

    2.3.2列表内只有字符串

      

S1=['ALEX','AA','BB']
V=''.join(S1)
print(V)

-----

ALEXAABB

  2.4 list.append()将东西追加到列表尾部

    

s1=['alex','a','b']
v=s1.append('good morning')
print(s1)
-------
['alex', 'a', 'b', 'good morning']

  有一点和字符串不同,因为列表是可以直接进行修改的,所以,在上个例子中,如果是字符串,则需要用另一个V来代替s1,但是对于列表来说,直接进行修改了,是在原来列表的基础上,所以v只是append这个动作完成了,所以输出的还是s1

  2.5 clear

    对列表进行清除

    

s1=['alex','a','b']
s1.clear()
print(s1)

###
[]

   2.6 copy,,浅拷贝

      将一个列表拷贝到另外一个列表中

s1=['alex','a','b']
s2=s1.copy()
print(s2)
######

['alex', 'a', 'b']

  2.7 count 进行计数,计算某个元素出现的次数

     

s1=['alex','a','b']
s2=s1.count('alex')
print(s2)

#####
1

  2.8 extend() 拓展可迭代对象

    迭代的东西一定是可以迭代的,而且内部是进行for循环

    

s1=['alex','a','b']
s2=s1.extend('alex')
print(s1)


#########
['alex', 'a', 'b', 'a', 'l', 'e', 'x']

  2.9 index 找到某元素的所在位置

      

s1=['alex','a','b']
s2=s1.index('alex')
print(s2)
1 #######
2 0

  2.10 insert 在指定位置插入某个元素

    

1 s1=['alex','a','b']
2 s1.insert(2,'alex')
3 print(s1)
4 
5 
6 #########
7 ['alex', 'a', 'alex', 'b']

  2.11  pop删除某个值并且获取

    

1 s1=['alex','a','b']
2 s2=s1.pop(0)
3 print(s2)
4 print(s1)
5 
6 #####
7 alex
8 ['a', 'b']

    如果pop后面没有跟值,则默认删除最后一个值

   2.12 remove

    直接删除某个元素,但是并不获取

   2.13 reverse 对元素的顺序进行反转

      

s1=[11,22,33,444,55,66,]
s2=s1.reverse()
#print(s2)
print(s1)

######
[66, 55, 444, 33, 22, 11]

    2.14  sort

       对列表的顺序进行整理

      

s1=[11,22,33,444,55,66,]
s2=s1.sort()
#print(s2)
print(s1)

####
[11, 22, 33, 55, 66, 444]

总结:列表是有顺序的,而且可以被修改

3.元组tuple

  元组是对列表进行加工,使其不能被修改

  元组内也可以包含任何东西

  3.1 可以通过索引来获取元组内的特殊值

  3.2 可以通过切片来获取元组内的特殊值

  3.3 字符串、列表和元组可以进行相互转换

  3.4 可以进行for循环,也是可迭代对象

  3.5 元组也是有序的

##########################

元组的方法:count和index

4.字典dict

keys:键

value:值

info={'k1':v1,'k2':v2}

value可以是任何类型

key不能是列表,也不能是字典

可以是布尔值,但是不能和其他冲突,比如说 True的默认值是1,。。

  其中,False的默认值None,,空的字符串‘’,空的元组()。空的列表[],空的字典,和0.其他的都是True

字典是无序的

4.1 items

  

info={'alex':123,"a":'nishishei','v':555}
for k,v in info.items():
    print(k,v)



alex 123
a nishishei
v 555

4.2 clear清除

4.3copy 浅拷贝

4.4 fromkeys(key,value)

 其中,key可以是可迭代器,value是一个固定的值,也就是将一个可迭代器内的所有元素,统一对应一个相同的value,形成字典

info='alex'
s1={}
v2=s1.fromkeys(info,222)
print(v2)



{'a': 222, 'l': 222, 'e': 222, 'x': 222}

4.5 get,根据key返回value,如果没有返回默认值None,可以对None进行修改

    

info={'alex':123,"a":'nishishei','v':555}
#info='alex'

v2=info.get(567,222)
print(v2)

------
222

因为没有key567,所以返回参数,222

4.6 pop(key,返回默认值)

  如果没有key,则返回默认值

  如果有,则删除并且获取

4.7 popitem()

  随机删除一堆键值对

4.8 setdefault(key,value)

  如果字典内有这个key,则获取这个key对应的value,如果没有,则创建key和value

4.9update(key,value)

  已经有的key进行修改,没有的进行添加

     

猜你喜欢

转载自www.cnblogs.com/hai125698/p/9118709.html