【python】list、tuple、dict、set、dataframe、narray、series之间的区别

目录

1、列表list和元组tuple之间的差异

2、dict和set之间的差异呢?

3、list和set之间的差异呢?

4、dict和dataframe之间的差异呢?

5、list和array之间的差异呢?

6、list和series之间的差异呢?

7、ndarray和darray差异?


作者:bandaoyu 链接:https://blog.csdn.net/bandaoyu/article/details/88374267

list、tuple、dict、set这4个是python的基本数据结构,其他几个不是, 是根据需要自己定义的数据结构.

1、列表list和元组tuple之间的差异

list列表和tuple元组的“技术差异”是,list列表是可变的,而tuple元组是不可变的。这是在 Python 语言中二者唯一的差别。(所以tuple大多数情况比list快)

2、dict和set之间的差异呢?

我这样理解,dict是键不重复的键值对集合,set元素的集合

d ict= {

'Adam': 95,

'Lisa': 85,

'Bart': 59

}

set = ['Adam','Lisa','Bart']

3、list和set之间的差异呢?

List的特点:元素有放入顺序Set特点:元素无放入顺序,元素不可重复

更多:

Set重复元素会覆盖掉(注意:元素虽然没有放入顺序,但是元素在set中的位置是有该元素的hashcode决定的,其位置其实是固定的,加入set的Object必须定义equals()方法,另外list支持for循环,也就是通过下标来进行遍历,也可以用迭代器,但是set只能迭代,因为它是无序的,无法用下标来取得想要的值)。

Set和List的读写性能对比

Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置变化。

List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

set转成list方法如下:                                                     list转成set方法如下:
s = set('12342212')                                                       l = ['12342212']
print s    # set(['1', '3', '2', '4'])                                       s = set(l[0])
l = list(s)                                                                         print s    # set(['1', '3', '2', '4'])
l.sort()    # 排序                                                             m = ['11','22','33','44','11','22']
print l    # ['1', '2', '3', '4']                                               print set(m)    # set(['11', '33', '44', '22'])

可见set和lsit可以自由转换,在删除list中多个/海量重复元素时,可以先转换成set,然后再转回list并排序(set没有排序)。此种方法不仅方便且效率较高。

Python的Set和List的性能比较 + 两者之间的转换_Linux编程_Linux公社-Linux系统门户网站

4、dict和dataframe之间的差异呢?

dataframe 有行索引和列索引 如:

df=

dict是一个键值对集合:

dict = {'Name': 'Zara', 'Age': 7}

相互转换:




In [6]:
df=pd.DataFrame({'key':['a','b','c'],'data1':[1,2,3],'data2':[4,5,6]})  
print(df)


  key  data1  data2
0   a      1      4
1   b      2      5
2   c      3      6



In [7]:
dict2 = df.to_dict()
print(dict2)


{'key': {0: 'a', 1: 'b', 2: 'c'}, 'data1': {0: 1, 1: 2, 2: 3}, 'data2': {0: 4, 1: 5, 2: 6}}

转成以列的key为键,以存储列的值的list为值的dict

In [8]:

{col:df[col].tolist() for col in df.columns} 


Out[8]:

{'key': ['a', 'b', 'c'], 'data1': [1, 2, 3], 'data2': [4, 5, 6]}

python DataFrame转dict 字典——以columns列名为key,每列元素为value_mooncrystal123的博客-CSDN博客_dataframe 键值对

dateframe的处理:Python之DataFrame数据处理_谢彦的技术博客-CSDN博客_dataframe数据处理

5、list和array之间的差异呢?

list中的数据类不必相同的,而array的中的类型必须全部相同
所以:

  • list 是列表,可以通过索引查找数值,但是不能对整个列表进行数值运算
  • array是数组,可以通过索引值查找值,能对整个数组进行数值运算

在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。



In [96]: b=[1,2]

In [99]: b+b

Out[99]: [1, 2, 1, 2]

array是数组,也可以通过索引值查找数据,但是能对整个数组进行数值运算

In [100]: a=np.array([1,2])

In [103]: a+a

Out[103]: array([2, 4])

更多:python中的list和array的不同之处_HAHA的专栏-CSDN博客_python中的list和数组

6、list和series之间的差异呢?

series 可以看成是多了元素索引的list。

import pandas as pd 
list_a = [2,4,5,6] 
pd.Series(list_a) 

Out[14]:

0    2
1    4
2    5
3    6
dtype: int64
In [11]: pd.Series({'a':1,'b':3},index = ['b','a','c'])
Out[11]:
b    3.0
a    1.0
c    NaN
dtype: float64

【python】pandas库Series类型与基本操作详解_brucewong0516的博客-CSDN博客_series类型

7、ndarray和darray差异?

暂时没有找到答案。

  • 13
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中的list(列表),tuple(元组),dict(字典)和set(集合)是常见的数据结构。 1. 列表(list)是一个可变的、有序的元素集合。可以通过方括号[]来创建一个列表,列表中的元素可以是任意类型,并且可以重复。列表提供了丰富的操作方法,如添加元素、删除元素、获取元素等。 2. 元组(tuple)是一个不可变的、有序的元素集合。可以通过小括号()来创建一个元组,元组中的元素可以是任意类型。元组一旦创建后,不能修改其元素的值。元组通常用于存储不可变的数据,如坐标位置、颜色等。 3. 字典(dict)是一种键值对(key-value)的数据结构。可以通过花括号{}来创建一个字典,字典中的元素是无序的,并且每个元素由一个键和对应的值组成。字典中的键必须是唯一的,而值可以是任意类型。字典提供了根据键获取值、添加键值对、删除键值对等操作。 4. 集合(set)是一个无序的、不重复的元素集合。可以通过花括号{}或set()函数来创建一个集合,集合中的元素不能重复。集合提供了并集、交集、差集等常用的数学运算操作,同时还支持元素的添加、删除等操作。 在编程中,根据具体的需求选择使用合适的数据结构能够更高效地处理数据,并且提供相应的操作方法方便开发。以上是对Python中常见的列表、元组、字典和集合的简要介绍。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值