美文网首页
列表,元组,字典

列表,元组,字典

作者: 蘑菇plus | 来源:发表于2018-07-23 16:56 被阅读0次

修改列表元素

通过下标获取元素,然后重新赋值:列表名[下标]=新的值

names=['dandan','aoli','yaqian','no']
names[3]='ok'
print(names)
结果:
['dandan', 'aoli', 'yaqian', 'ok']

列表的其他操作

1.len() 获取列表的长度(元素的个数)
2.列表1+列表2:让列表1和列表2的元素组合在一起产生一个新的列表
3.列表*数字:让列表中的元素重复N次,然后产生一个新的列表
4.in,not in
元素 in 列表:判断指定的元素是否在指定的列表中
5.获取列表中的最大元素和最小元素max(),min()

names=['dandan','aoli','yaqian','no']
names[3]='ok'
print(names)
m=max(names)
print(m)
结果:yaqian

6.其他方法
1.count 获取指定元素在列表中出现的次数
2.列表.extend(序列):将序列中的每一个元素添加到列表中

names=['dandan','aoli','yaqian','no']
print(names)
names.extend('ok')
print(names)
结果:
['dandan', 'aoli', 'yaqian', 'no']
['dandan', 'aoli', 'yaqian', 'no', 'o', 'k']

3.列表.index(元素) 获取指定元素在指定列表中的索引(如果元素有多个,取第一个)

names=['dandan','aoli','yaqian','no']
m=names.index('dandan')
print(m)
结果:0

4.列表.reverse() 反向列表中的元素(直接操作原列表,不会产生新的列表)

names=['7','9','4','0']
names.reverse()
print(names)
结果:['0', '4', '9', '7']

5.列表.sort():对列表元素进行排序(默认是从小到大排序)

names=['7','9','4','0']
names.sort(reverse=True)
print(names)
结果:['9', '7', '4', '0']

6.列表.clear():清空列表中的元素

names=['7','9','4','0']
names.clear()
print(names)
结果:[]

7.列表.copy() 将列表中的元素全部拷贝一份创建一个新的列表' '

names=['7','9','4','0']
names1=names.copy()
print(names)
print(names1)
结果:
['7', '9', '4', '0']
['7', '9', '4', '0']
names=['7','9','4','0']
names1=names[:]
print(names)
print(names1)
结果:
['7', '9', '4', '0']
['7', '9', '4', '0']

元组

元组就是不可变的列表,列表中除了可变的操作以外,其他的操作都适用于元组
1.元组值:
a.使用()将元素包含起来,多个元素之间用逗号隔开,比如:(1,2,'abc')
b.元素的类型可以是任何类型

a.改,増,删相关操作都不能用于元组,查可以

names=('dandan','aoli','gaoya')
print(names[0::2])
结果:('dandan', 'gaoya')

b.获取元组的元素

names=('dandan','aoli','gaoya')#通过多个变量分别获取元组的元素(变量的个数和元组个数一样)
x,y,z=names
print(x,y,z)
结果:
dandan aoli gaoya
names=('dandan','aoli','ok','gaoya')
first,*midel,last=names #通过变量名前加*可以把变量变成列表,获取多个元素
print(first,midel,last)
结果:dandan ['aoli', 'ok'] gaoya
names=('dandan','aoli','ok','gaoya')
*names1,names2=names
print(names1,names2)
结果:
['dandan', 'aoli', 'ok'] gaoya
names=('dandan','aoli','ok','gaoya')
names1,*names2=names#让name1获取第一个元素,剩下的部分作为列表name2的元素
print(names1,names2)
结果:
dandan ['aoli', 'ok', 'gaoya']

字典

字典是一种容器类型的数据类型(序列),存的数据是以键值对的形式出现的
字典里的键是唯一的
字典是可变的(可是增删改),但是无序的(不能使用下标)
键值对:键:值(key:value) 键值对中Key是形式,值才是真正要存的内容
键:理论上可以是任何不可变的数据类型,但实际开发的时候一般使用字符串作为Key
值:可以是任意类型数据
1.声明一个字典

dict1={'a':1,'b':3}
print(dict1)
结果:{'a': 1, 'b': 3}
dict2={'a':1,[1,2,3]:2,(2,5):3}

2.将其他数据类型转换为字典

dict3=dict([(1,2),(2,8)])
print(dict3)
结果:{1: 2, 2: 8}

3.字典的增删改查
a.字典获取元素的值是通过Key来获取的
字典[key]

person={'name':'dandan','age':18}
print(person['name'])
结果:
dandan

如果key不存在,会报KeyError
b.字典.get(key)

person={'name':'dandan','age':18}
print(person.get('name'))
结果:
dandan

如果key不存在,返回None
注意:如果key存在,使用[]语法获取。不确定key值是否存在才使用get()方法获取

字典里增加元素

增加元素\修改元素
通过key获取字典元素,然后赋值。如果key本身就存在的时候,就修改元素的值;不存在的时候就给字典添加键值对

person={'name':'dandan','age':18}
print(person.get('name'))
person['face']='nice'
print(person)
结果:
{'name': 'dandan', 'age': 18, 'face': 'nice'}

c.删除 删除的是键值对
del 字典[key]

person={'name':'dandan','age':18}
print(person.get('name'))
person['face']='nice'
print(person)
del person['face']
print(person)
结果:
{'name': 'dandan', 'age': 18}

如果del person['aaa']里的aaa不存在,会报错!
d.字典.pop(key)
会返回被键值对对应的值

person={'name':'dandan','age':18}
person['face']='nice'
m=person.pop('age')
print(person,m)
结果:{'name': 'dandan', 'face': 'nice'} 18
person={'name':'dandan','age':18}
person['face']='nice'
person.pop('age')
print(person,age)

相关的数组属性

  • 字典.keys():获取字典里的所有key,返回值得类型是dict_keys,但是可以把它当成列表来使用
  • 字典.values():获取字典所有的值
  • 字典.items():将字典中所有的键值对转换成一个一个的元组,key作为元组的第一个元素,value作为元组的第二个元素
person={'name':'dandan','age':18,'scores':{'english':87}}
keys=person.keys()
print(keys,type(keys))
for key in keys:
    print(key)
person={'name':'dandan','age':18,'scores':{'english':87}}
print(person.values())
结果:
dict_values(['dandan', 18, {'english': 87}])
person={'name':'dandan','age':18,'scores':{'english':87}}
print(person.items())
结果:
dict_items([('name', 'dandan'), ('age', 18), ('scores', {'english': 87})])

遍历字典

a.直接遍历字典获取到的是所有的key

person={'name':'dandan','age':18,'scores':{'english':87}}
for key in person:
    print(key,person[key])

b.遍历直接获取到key和value(不推荐使用)

person={'name':'dandan','age':18,'scores':{'english':87}}
for key,value in person.items():
    print(key,value)

其他操作

1.fromkeys()
创建一个新的字典,序列中的元素作为key,value作为值

new_dict=dict.fromkeys('abc','10')
print(new_dict)
结果:{'a': '10', 'b': '10', 'c': '10'}
dict={'12':'a'}
new_dict=dict.fromkeys(['abc','dcc','123'],'100')
print(new_dict)
结果:
{'abc': '100', 'dcc': '100', '123': '100'}

2.key in 字典:判断字典里是否存在指定的key
判断键是否存在字典里

person={'name':'dandan','age':18,'scores':{'english':87}}
print('name' in person)
结果:True

3.updata
字典1.updata(字典2):使用字典2的键值对去更新字典1里的键值对。如果字典2中对应键值对在字典1中不存在,就添加键值对到字典1,如果存在

dict1={'1':'a'}
dict1.update({'1':'q','3':'s'})
print(dict1)
结果:
{'1': 'q', '3': 's'}

集合

  • 集合也是一种容器类型的数据类型(序列);数据放在{}中,多个之间用逗号隔开;{1,'a','f'}
  • 集合是无序的(不能通过索引取值),可变(可以增删改),元素不能重复
    一个空的集合:set0=set()
    自带去重复功能
    1.怎样声明集合
    a.声明一个变量,赋一个集合值
set1={4,8,7}
print(set1,type(set1))
set1=set('dsdw458')
print(set1)
结果:{'8', 'w', '4', '5', 'd', 's'}

b.把其他的数据转换为集合

set2 = set('abc1233h')  # 将其他数据转换成集合,自带一个去重的功能
print(set2)
set3 = set([12, 'abc', 'hh', 32, 12, 'abcn'])
print(set3)
print(list(set3))
结果:
{'c', 'b', 'a', '1', '2', '3', 'h'}
{32, 'hh', 'abc', 'abcn', 12}
[32, 'hh', 'abc', 'abcn', 12]

2.增删改查
a.查:遍历
注意:集合没办法单独获取某一个元素

set2={3,'f',7,5}
for item in set2:
    print(item)

b.増
集合.add(元素) 在指定的集合中添加指定的元素

set2={3,'f',7,5}
set2.add(10)
print(set2)

集合.updata(集合2):将集合2中的元素添加到集合1,自动去重

set2={3,'f',7,5}
set2.update({10,7})
print(set2)
结果:{3, 10, 5, 7, 'f'}

c.删
集合.remove(元素):在指定的集合中删除指定的元素

set2={3,'f',7,5}
set2.remove('f')
print(set2)
结果:
{3, 5, 7}

pop删除是随机删除一个

set2={3,'f',7,5}
set2.pop()
print(set2)
结果:
{5, 'f', 7}

集合可以进行数学中集合相关的操作:判断是否包含,
a.判断是否包含
集合1>=集合2---判断集合1是否包含集合2(判断集合2中的元素是否都在集合1里面)
集合1<=集合2---判断集合2是否包含集合1
b.求并集 |

print({1,5,8}|{8,7,6})
结果:
{1, 5, 6, 7, 8}

c.求交集 &

结果:{8}

d.求差集 -

print({1,5,8}-{8,7,6})

f.求补集 ^

print({1,5,8}^{8,7,6})
结果:{1, 5, 6, 7}

clear:清空集合

m={1,5,8}^{8,7,6}
m.clear()
print(m,type(m))
结果:
set() <class 'set'>

len:获取集合中元素的个数

m={1,5,8}^{8,7,6}
m.clear()
print(m,type(m))
print(len(m))
结果:
{'name': 'dandan', 'face': 'nice'}
set() <class 'set'>
0

补充

当元组的元素只有一个的时候,需要在元素后面加一个逗号,表示这个值是一个元组

a=(3,)
print(a,type(a))
结果:
(3,) <class 'tuple'>

相关文章

网友评论

      本文标题:列表,元组,字典

      本文链接:https://www.haomeiwen.com/subject/wtsdmftx.html