python的集合与Java的类似大概分为三类
- list 列表
- set 去重的集合
- tuple 不可变的元祖
- dictionary 字典对应Java中的map
下面记录下学习的内容 :
以上四类集合都可以理解为容器;
list特点:
- 可变集合,可以添加,删除,覆盖等操作;
- 有序的集合,可以按索引操作
- 访问是可以在集合后面以中括号形式来访问list[]
tuple特点:
- 可以理解为具有部分功能的list
- 不可变的集合
- 有序
- 声明时以小括号创建,也可以不加括号
- 当只有一个元素时要在一个元素后面加逗号来避免发生歧义
set特点:
- 无序
- 可变
- 去重
- 声明方式可以set(list)来声明顺便将list中的元素进行了去重操作
- pop方法是随机删除元素
dictionary特点:
- 字典声明方法用大括号{key1: value1,key2: value2}
- 访问时可以用中括号【key】也可以name.get(key)略有差别,推荐第二种方法
贴下代码:
name2age = {"lixin": 25, "lijing": 25, "liguohui": 32, "liwang": 27}
print(name2age["lijing"])
print(name2age.get("liguohui"))
# this manner to get ele from dictionary if there is no key will exception
# print(name2age["wangermazi"])
print(name2age.get("wangermazi"))
print("lijing" in name2age)
print("liwang" in name2age)
name2age.pop("lijing")
print("lijing" in name2age)
exist = name2age.get("lixin") is not None
print(exist)
a = [1, 2, 3, 4]
b = a
c = [1, 2, 3, 4]
print(a == b)
print(a is b)
print(a == c)
# 'is' is compare Object
print(a is c)
vars = ["lijing", "lixin", "liwang", "liguohui", "lixin"]
name_set = set(vars)
print(name_set.__sizeof__())
print(name_set.__len__())
print(len(name_set))
print(name_set)
# judge ele is contained by set
print("lixin" in name_set)
# python is amazing
print("fanqingna" in name_set)
print(name_set.pop())
print(name_set)