python列表和集合
⑴ python 列表和元组的区别
1、不可变和可变
元组是不可变对象,对象一旦生成,它的值将不能更改;列表是可变对象,对象生成后,可以对其元素进行更改、添加、删除、清空、排序等操作。
2、可哈希和不可哈希
可哈希对象就是能映射成内存地址的对象。在Python基本数据类型中,只有列表、字典和可变集合是不可哈希的。说元组是可哈希也不对,如果元组中某个元素是列表、字典或可变集合,那么这个元组也是不可哈希的。可哈希对象和不可哈希对象的区别体现在:可哈希对象可以作为字典的键和集合的元素,不可哈希对象则不可以。
⑵ python 集合里面可以放list吗
不可以,list是可变类型,可以用tuple代替
⑶ 在python中如何将两个list合并成一个list,不用for语句
1、运算符:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = list1 + list2
print(list3)
2、extend()方法:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = list1.extend(list2)
print(list3)
3、切片方式:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1[len(list1):len(list1)] = list2
print(list1)
(3)python列表和集合扩展阅读:
list的方法
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
list 操作符:,+,*,关键字del
a[1:] #片段操作符,用于子list的提取
[1,2]+[3,4] #为[1,2,3,4]。同extend()
[2]*4 #为[2,2,2,2]
del L[1] #删除指定下标的元素
del L[1:3] #删除指定下标范围的元素
⑷ python中元祖,列表,集合,字典的区别
元祖中的数据是不可修改的.但是是有顺序的
列表的长度是可变的,也就是说列表中的元素可以增删改,列表也是有序的.
字典是键值对的组合,是无序的,长度可变,可以增删改查.
其中列表,字典,元组都是可以相互嵌套的.
⑸ Python解析列表和集合中的排序不同的原因是什么
列表存储是顺序存储,所以输出也是顺序的。
集合和字典的存储结构是hash表,是通过索引查找数据,所以存储的位置很随机,而读取是顺序读取得,因此写入和读取得顺序不同。他俩的区别是set不存储value,只存储key。
set是集合的意思。
⑹ Python3的元组,字典,列表,集合有什么联系和区别
4个都是python的数据结构。
元组和列表的底层实现是一样的,本质都是把一堆东西放在一排,区别在于元祖放完后就不能改了。
你把字典理解成我们普通用的字典就可以了,而集合就是把字典的所有value都设置成None。字典和集合的底层实现原理是一样的,但初学者不必关注这个原理。集合与数学中的集合有相同性质,比如唯一性,对比字典中key的唯一性来理解一下。
比方:你遇到一个没见过的字,查查看是不是标准的汉字,这就是集合的作用,集合只关注有没有的问题;如果是标准汉字,你要看看这个字的意思,这就是字典的作用;你现在找来一个汉字,打算组成成语,然后再找几个字,向第一个汉字左右放,就是列表的作用;一旦发现一个成语,就固定不变了,字和字的排列都不能改,这就是元祖。
⑺ python两个列表(或集合、字典)进行比较,如果一个列表中的几位在另一个列表中出现,则删除这些项
#coding=utf-8
#py2.7
test1 = ['a1', 'b2']
test2 = ['a1_001', 'a1_002', 'a1_003', 'a2_001', 'a3_001', 'b2_001']
print filter(lambda x:x[:2] not in test1,test2)
#我是按照你给的例子来写的代码,这样只循环了 test2长度的次数
#“现在两组数据长度不一样”,不太明白这句话对于你的逻辑有啥影响
⑻ Python列表,元组,集合,字典的区别和相互
元组和列表是类似的, 只是元组不可修改内容
注意这里指的是不可修改元组元素的指向, 你可以修改内容指向的内容
>>>lst=[1,2,3]#定义列表
>>>a=(1,2,lst,4)#注意元组a的a[2]是一个列表
>>>a
(1,2,[1,2,3],4)
>>>a[2]=4#试图修改元组元素的指向,报错
Traceback(mostrecentcalllast):
File"<pyshell#3>",line1,in<mole>
a[2]=4
TypeError:'tuple'
>>>a[2][0]=0#不修改元组元素的指向的元素,但是修改指向的内容
>>>a
(1,2,[0,2,3],4)
>>>a[2].append(5)#不修改元组元素的指向的元素,但是修改指向的内容
>>>a
(1,2,[0,2,3,5],4)
字典完全区别于列表和元组
因为字典使用hash表来存储, 所以只有能够进行hash运算的才能作为键值
个人认为, 一般不可变的都能作为键, 比如str/tuple/None/function.列表不能作为键
最后, 由于字典是hash表算法{字典查找O(1), 列表遍历O(n)}, 在数据量巨大的时候, 字典的查找效率出奇的高
⑼ Python列表,元组,集合,字典的区别和相互转
列表是一组值,其中的值可以改变
元组也是一组值,其中的值不能改变
列表与元组可以相互转换
集合是一组唯一的无顺序的值
字典是无固定顺序的键值对