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

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没有排序)。此种方法不仅方便且效率较高。

https://www.linuxidc.com/Linux/2012-07/66404.htm

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]}

https://blog.csdn.net/mooncrystal123/article/details/84334611

dateframe的处理:https://blog.csdn.net/xieyan0811/article/details/78834870

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

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



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])

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

https://blog.csdn.net/brucewong0516/article/details/79196902

7、ndarray和darray差异?

暂时没有找到答案。

猜你喜欢

转载自blog.csdn.net/bandaoyu/article/details/88374267