python基础2:列表、元组、集合、字典

作者: python 发布时间: 2021-03-03 浏览: 1277 次 编辑

python基础2

2. 变量类型

2.3 列表 list

2.3.1 列表的创建

列表可以支持任意类型的元素,常规的创建这里就不再赘述

在某些特殊的情况下,我们会已知列表的长度,或者列表的长度由某一参数决定,而我们需要将元素放入列表的指定位置,这种情况下我们在列表初始化的时候就要预留好元素的位置

#可以用一些简单的元素先行占好位置,例如0或者空字符,这样后续就可以给指定位置赋值
#写法1
x=[0 for _ in range(4)]
#写法2
y=[0]*4

x[1]=2
y[1]=2
print(x)
print(y)

'''
输出:
[0, 2, 0, 0]
[0, 2, 0, 0]
'''

2.3.2 内置函数

切片操作(即字符串中所讲)

在字符串中其实就是把字符串看成列表,把每一个字符看成元素,包括空字符和转义字符,遵循左闭右开的法则,具体看前一篇

.append()/.extend()

都是在列表最后添加元素

区别在于append一次只能添加一个元素,而extend一次可以添加多个元素

.insert()

在指定位置处插入元素,需要注意当指定索引 n 时,元素插入在 n+1位置处

x=[0,0,0,0,0,0]
x.insert(3,1)
print(x)

'''
输出:
[0, 0, 0, 1, 0, 0, 0]
'''

.remove()/ del /.pop()

  • 都是可以删除列表元素
  • remove()删除指定元素,注意删除的是从左开始第一个指定元素
  • del()删除的是指定索引位置上的元素
  • pop有两个功能,返回列表最后一个元素并删除
x=[1,0,0,1,0]
x.remove(0)
print(x)

x=[1,0,0,1,0]
del x[3]
print(x)

x=[1,0,0,1,0]
s=x.pop()
print(s)
print(x)

'''
输出:
[1, 0, 1, 0]
[1, 0, 0, 0]
0
[1, 0, 0, 1]
'''
  • .count()
    • 返回指定元素出现的次数
  • .index()
    • 返回指定元素的索引,这里只会返回检索到的第一个指定元素的位置
    • 当列表没有指定元素时会报错
    • 另外还可以指定范围进行检索
x=[1,0,0,1,0]
y=x.index(1)
z=x.index(1,1,4)
print(y)
print(z)

'''
输出:
0
3
'''
  • 列表的拼接
    • 通过A+B将A,B两个列表拼接起来

2.4 元组 tuple

元组看上去陌生,在平时其实很常用到,只是大家没有意识到自己用的就是元组。个人理解就是一个不能修改的有序列表,元组几乎继承了列表的所有属性,大部分操作同列表一样

  • 元组的创建
t=()
print(type(t))
t=(1,2)
print(type(t))
t=1,2
print(type(t))

#也可以先创建列表再转换成元组
l=[1,2,3]
t=tuple(l)
print(type(t))
print(t)

'''
输出:




(1, 2, 3)
'''

2.5 集合 set

同数学定义,是一堆确定的无序且唯一的数据

2.5.1 集合的创建

  • 集合的创建容易写错成字典
s=set()
print(type(s))
s={1,2}
print(type(s))

#当使用空大括号时会被当成字典!
s={}
print(type(s))

'''
输出:



'''
  • 可以利用集合的唯一性来过滤列表,剔除重复元素
l=[1,1,2,2,1,0,0]
s=set(l)
print(s)

'''
输出:
{0, 1, 2}
'''

2.5.2 内置函数

.len()/.max()/.min()同列表一致

.add()

向集合内添加元素

.remove()/.discard()/.pop()

都是删除元素

.remove()删除指定元素,若元素不存在会报错

.discard()同样是删除指定元素,但是元素不存在不会报错

.pop()随机移除一个元素

s={1,2,3,'aaa',7}
s.remove(3)
print(s)
s.remove(0)

'''
输出:
{1, 2, 7, 'aaa'}

Traceback (most recent call last):
  File "script.py", line 4, in 
    s.remove(0)
KeyError: 0

Exited with error status 1
'''
s={1,2,3,'aaa',7}
s.discard(3)
print(s)
s.discard(0)
print(s)

s.pop()
print(s)

'''
输出:
{1, 2, 7, 'aaa'}
{1, 2, 7, 'aaa'}
{2, 7, 'aaa'}
'''

集合函数(同数学定义)

函数 含义

A.intersection(B) A与B的交集

A.difference(B) A与B的差集

A.union(B) A与B的并集

A.issubset(B) B是否为A的子集

A.issuperset(B) B是否为A的超集

frozenset()

冰冻集合,即集合不可以做任何修改

2.6 字典 dict

2.6.1 字典的创建

传统直接赋值都比较熟悉,不再赘述

fromkeys() 创建一个新字典

dict.fromkeys(seq[, values]) 以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

seq=['name','age','sex']
values=0
d=dict.fromkeys(seq, values)
print(d)

'''
输出:
{'name': 0, 'age': 0, 'sex': 0}
'''

2.6.2 内置函数

  • .keys()
    • 以列表返回所有键值
  • .values()
    • 以列表返回字典所有值
  • .get()
    • 返回指定键的值
  • .update()
    • 将一个字典更新到另一个字典当中
    d={'name': 0, 'age': 0, 'sex': 0}
    a={'telephone':110}
    
    l1=d.keys()
    l2=d.values()
    x=d.get('age')
    d.update(a)
    
    print(l1)
    print(l2)
    print(x)
    print(d)
    
    '''
    输出:
    dict_keys(['name', 'age', 'sex', 'telephone'])
    dict_values([0, 0, 0, 110])
    0
    {'name': 0, 'age': 0, 'sex': 0, 'telephone': 110}
    '''