python 数据类型(容器数据类型)


不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。

列表list

定义:list = [value1, value2, value3],空列表 a = list() 或者 a = []
字符串str1转列表list,mylist = list(str1)

列表特点:

1、可以存放任何类型的数据。 2、有顺序。 3、无需考虑长度,长度可以自由改变。

遍历列表

依次取出对象中的每一项数据,
for i in mylist:
for i in enumerate(mylist):

获取列表元素

索引取值:取单个值,mylist[index] ,索引可以为负值(从后往前取值),但不能超过下标范围。
切片取值:取子列表,mylist[2:5], 不包含结束下标。

示例:

# 列表索引
mylist1 = [1, 'a', 1.1, None, 'wang', [1, 2], False]
print(mylist1)
print(mylist1[3])   # 取出None
print(mylist1[-4])   # 取出None

# 列表切片
str = "hello cali Today is sunday"
mylist = str.split()   # 以空格符号分割str
print(mylist[2:5])   # 索引里可以超出index
# -1从后往前取值
print(mylist[-4::-1])	# 取出cali hello,倒着取值从cali(下标-4)开始到结束
print(mylist[1::-1])	# 取出cali hello,倒着取值从cali(下标1)开始到结束

# 切片对象(slice函数,生成一个slice对象,相当于可以给要切的内容取个名字)
sub_list = slice(-4, 0, -1)
print(mylist[sub_list])

a = ['apple', 'orange', 123, 0.1111, 'cali']
print(a[1:])     # 打印第2个到最后
print(a[2:7])    # 打印第2个到第6个
print(a[1:-2])   # 打印第2个到倒数第3个
print(a[0::4])   # 打印列表第1个和最后1个(步长为4)
print(a)

增加

append:追加数据到末尾
示例:a.append(“banana”),a.append([‘apple’,‘apple2’])

insert:在指定index位置插入数据
示例:a.insert(2,“orange”)

extend:将一个列表里的内容扩展到另一个列表
示例:mylist.extend(mylist2)mylist.extend(“abc”)
只限可转为list的类型(str,list,tuple),不可以mylist.extend(3)

注:mylist+mylist2 也可实现连接两个列表,但不对原列表内容修改而是生成新列表。

删除

pop
mylist.pop() 默认删除最后一个元素,也可以指定index,mylist.pop(2)
返回值为被删除的值,若列表为空则报错

remove
mylist.remove(“apple”) 删除指定数据,返回值是None,若数值不存在则报错

del
根据下标删除 del mylist[2]del mylist[0:5]
删除整个列表 del mylist

clear
清空列表 mylist.clear()
注:mylist.clear() 与 mylist = [] 区别 ,前者mylist内存地址不变,后者相当于mylist指向新的地址列表

修改

利用下标mylist[2] = “wang”

利用切片
mylist[2:5] = [3, 7, 4]
mylist[-1:] = [“a”, “b”, “c”] ==》列表最后一个修改为"a",再末尾添加"b",“c”,
mylist[0:5] = [] ==》 删除前五个

反转

reverse 反转,mylist.reverse() 等价于 mylist[: :-1]

排序

sort 排序,mylist.sort() ,只能相同类型的数据进行排序

统计

len:统计列表中有多少个元素,len(mylist)
count:统计列表中a出现的次数,mylist.count(‘a’)
index:返回a第一次出现的下标,mylist.index(‘a’)

判断成员关系

判断列表中是否有某个数据,print(‘cali’ in list),输出True或False

元组tuple

定义mytup = ()mytup = tuple()
当定义元组只有一个元素时要加一个逗号mytup = (1,)否则type将会识别成int类型

特点

1、元组长度不可变,不可修改。 2、有顺序。 3、可以放任何数据类型。

列表与元组转换:
list(mytuple)
tuple(mylist)

索引、切片:返回结果为子元组

查找统计:len/index/count

字典dict

定义:
adict = {}adict = dict() ---->空字典
mydict = {‘root’: ‘123’, ‘w’: ‘1234’}

将字典转换为列表:list(mydict.items(()

特点:

1、字典是无序的。
2、存储的是key—value键值对,key为不可变对象,value可为任何数据类型。
3、key必须唯一,否则后面的值会覆盖前面的

遍历:
for i in mydict 默认取出的为key值
for i in mydict.values() 遍历取出value值

取值

  • mydict[“key”] ---- key不存在时报错
  • mydict.get(“key”) ---- key不存在时返回默认值None
  • mydict.get(“key”, 0) ---- key不存在时返回0

新增/修改

mydict[“key”] = {“1”:“value1”}
key已经存在,则表示修改该key的对应数据
key不存在,表示增添这个key的内容

删除

mydict.pop(“key”)
删除key及对应的值,不存在时报错

mydict.pop(“key”,None)
key不存在时返回None

mydict.popitem()
LIFO顺序删除字典键值对,并以元组形式返回,当字典为空则报错

合并

字典的合并不支持 +
dict1.update(dict2) 将dict2 合并到dict1
dict(dict1, **dict2) 将dict1与dict2合并成一个新的字典

判断成员关系

  • “key” in mydict 返回True/False
  • “key” not in mydict 返回True/False
  • “value” in mydict.values()

集合set

定义:myset = set() 空集合

特点

1、无序的,不重复的。
2、相当于只包含key的字典,key必须是可hash对象,即不可变数据类型。
3、没有下标,没有切片

添加

添加元素:add 和 update
示例:myset.add(‘abc’)myset.update(‘abc’)

移除

移除元素:remove 和 discard

myset.remove(‘c’) 当不存在会报错
myset.discard(‘a’) 不存在不会报错

元组基本操作

并集、交集、差集

s = set('hello')
t = set('python')
# 并集
print(s | t)
print(s.union(t))
# 交集
print(s & t)
print(s.intersection(t))
# 差集
print(s - t)
print(s.difference(t))

作用:

1、去重:将一个列表转换为集合后就自动去重了 set(list)。
2、关系测试:测试两组数组之间的交集、并集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值