python几种数据类型比较

一、类别

  1. 列表list,用[ ]表示

    1.1 构建方式

    	# 方式一
    	a=[1,2,3]
    	a=['hello','123']
    	# 方式二:用list类型构建,括号内为一序列即可
    	a=list("hello")  ->['h','e','l','l','o']
    	a=list((1,2,3)) # 参数为元组->[1,2,3]
    	# 方式三:用生成器语法定义一个列表
    	f = [x for x in range(1, 10)]
    	f = [x + y for x in 'ABCDE' for y in '1234567'] % -> ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'B1'...]
    

    1.2 增加元素的方式

    	a.append(6);  # 追加
    	a.append('hello'); #'hello'被作为一个整体加入
    	a.insert(2,8);  # 插入
    	a+=[1000,1003] # 合并
    

    1.3 删除元素的方式

    	a.remove(3) # 删除元素3, 有重复的话只能删掉一个,删之前记得判断if 3 in a:
    	a.pop(0) # 删除指定位置的元素
    	a.clear() # 清空
    

    1.4 排序

    #两种方法,均默认升序,可通过reverse=1参数指定升降序
    print(sorted(a)) # 此方法a本身没变
    a.sort()  # a内排好序了
    
  2. 元组tuple,用( )表示

    2.1 构建方式

    t1=1,2,3  # 逗号分隔一些值,自动创建完成元组
    t2="hello","nihao" # 同上
    t3=(1,2,3)  #正常情况
    t4=()  # 空白元组
    t5=(5,) # 只含一个值的元组,必须加个逗号(,)!!!
    # 用tuple类型创建,同List
    t6=([1,2,3,4,5]) # 括号内是一个序列
    

    2.2 元组不可变,所以没有增加删除元素的函数。

  3. 字典dict,用{ }表示,可以存储任意类型对象,字典的每个元素都是由一个键和一个值组成的“键值对”,键和值通过冒号分开。
    注意:1)键必须是不可变的数据类型,可以用数字,字符串或元组充当。2)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
    3.1 构建方式

    scores = {'小花': 95, '小李': 78, '小美': 82}
    

    3.2 访问元素

    # 方法一:
    print(scores['小花']) # ->95
    # 方法二:
    scores.get('小花'60) # 此方法可设置默认值,指定键的值不存在时,返回该默认值值。
    

    3.3 修改元素

    # 方法一:
    scores['小李']=98 % ->{'小花': 95, '小李': 98, '小美': 82}
    # 方法二:
    scores.update(小李=98)
    

    3.4 增加元素,类似修改元素的方法

    # 方法一:
    scores['小王']=100  % ->{'小花': 95, '小李': 98, '小美': 82, '小王': 100}
    # 方法二:
    scores.update(小贾=100)
    

    3.5 删除元素

    del scores['小花'] # 删除某一元素
    dict.clear()  # 清空字典
    

    3.6 排序

    # 如果传入的是整个字典,则默认对key进行排序,key这个参数就没有作用
    d = {'aa': 1, 'bb': 2, 'cc': 5, 'ss': 3}
    d_sort = sorted(d, key=lambda x: x[1]) # 此时 d_sort为['aa', 'bb', 'cc', 'ss']
    # 如果传入的是字典元素,则key参数起作用,可通过key排序,也可通过value排序,返回一个list
    d_sort = sorted(d.items(), key=lambda x: x[1], reverse=False) # 此时 d_sort为[('aa', 1), ('bb', 2), ('ss', 3), ('cc', 5)]
    

4、集合。Python中的集合跟数学上的集合是一致的,无序且不允许有重复元素,而且可以进行交集、并集、差集等运算。
集合的声明和赋值集合必须用Python提供的工厂函数来声明!

	# 添加元素的方式:
		Set = {2,3,1,4}
		Set.add('hello') # 将'hello'作为整体加入!
		Set.update('hello') # 将'hello'拆分成字母加入!
	# 删除元素的方式:
		Set.remove(108) # 如果不存在该元素会异常
		Set.discard(90)  # 如果不存在该元素也没事
		Set.pop()  # 移除并返回 s 中的任意一个元素
	# 排序
		t = sorted(Set) #返回一个列表
	# 交并补等方式
		print(set1 & set2)
	# print(set1.intersection(set2))
	print(set1 | set2)
	# print(set1.union(set2))
	print(set1 - set2)
	# print(set1.difference(set2))
	# 判断子集
	print(set2 <= set1)

二、list和tuple共同点

因为list和tuple都属于序列,所以有一些共同点,其实字符串str也是序列,所以也具有下列特点(第一条除外)。
1、数据类型:可以存储不同数据类型
2、访问:都是有序列表,通过下标访问元素。
3、切片:切片操作用来访问一定范围内的元素。通过冒号相隔的两个索引来实现:

a=[0,1,2,3,4,5,6,7,8,9]
print a[1:5] # ->[1,2,3,4] 左闭右开区间
print a[-3:-1] # ->[7,8] 左开右开
print a[:5] # ->[0, 1, 2, 3, 4]
print a[1:8:2] # ->[1,3,5,7] 设置步长为2(正数),从左向右切
print a[8:1:-2] # ->[8, 6, 4, 2]  步长为负数时,从右向左切,注意让start<end, 否则结果为空。

4、相加:两个相同类型的序列可以相加并自动合并,序列二的元素排在序列一之后。
5、乘法:

num1=[1,2]
print num1*2  # ->[1,2,1,2]

三、不同点

1、元组在创建时间和占用的空间上面都优于列表, 如果不需要对元素进行添加、删除、修改的时候,可以考虑使用元组。
2、根据是否可变和是否有序:
摘自网络

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值