python集合学习笔记

python的集合与Java的类似大概分为三类

  • list 列表
  • set 去重的集合
  • tuple 不可变的元祖
  • dictionary 字典对应Java中的map

下面记录下学习的内容 :

以上四类集合都可以理解为容器;

list特点:

  1. 可变集合,可以添加,删除,覆盖等操作;
  2. 有序的集合,可以按索引操作
  3. 访问是可以在集合后面以中括号形式来访问list[]

tuple特点:

  1. 可以理解为具有部分功能的list
  2. 不可变的集合
  3. 有序
  4. 声明时以小括号创建,也可以不加括号
  5. 当只有一个元素时要在一个元素后面加逗号来避免发生歧义

set特点:

  1. 无序
  2. 可变
  3. 去重
  4. 声明方式可以set(list)来声明顺便将list中的元素进行了去重操作
  5. pop方法是随机删除元素

dictionary特点:

  1. 字典声明方法用大括号{key1: value1,key2: value2}
  2. 访问时可以用中括号【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)

猜你喜欢

转载自blog.csdn.net/bigdataprimary/article/details/82748673