美文网首页
2019-06-28 字典和集合

2019-06-28 字典和集合

作者: 张大志的博客 | 来源:发表于2019-06-28 17:14 被阅读0次
字典和集合的创建
d1 = {'name': 'jason', 'age': 20, 'gender': 'male'}
d2 = dict({'name': 'jason', 'age': 20, 'gender': 'male'})
d3 = dict([('name', 'jason'), ('age', 20), ('gender', 'male')])
d4 = dict(name='jason', age=20, gender='male') 
d1 == d2 == d3 ==d4
True

s1 = {1, 2, 3}
s2 = set([1, 2, 3])
s1 == s2
True
访问字典
d = {'name': 'jason', 'age': 20}
d['name']
d = {'name': 'jason', 'age': 20}
d.get('name')
'jason'
判断一个元素是否在字典和集合内
s = {1, 2, 3}
1 in s
True
10 in s
False

d = {'name': 'jason', 'age': 20}
'name' in d
True
'location' in d
False
字典和集合的增、删和更新
d = {'name': 'jason', 'age': 20}
d['gender'] = 'male' # 增加元素对'gender': 'male'
d['dob'] = '1999-02-01' # 增加元素对'dob': '1999-02-01'
d
{'name': 'jason', 'age': 20, 'gender': 'male', 'dob': '1999-02-01'}
d['dob'] = '1998-01-01' # 更新键'dob'对应的值 
d.pop('dob') # 删除键为'dob'的元素对
'1998-01-01'
d
{'name': 'jason', 'age': 20, 'gender': 'male'}

s = {1, 2, 3}
s.add(4) # 增加元素 4 到集合
s
{1, 2, 3, 4}
s.remove(4) # 从集合中删除元素 4
s
{1, 2, 3}
根据字典的键和值进行升序和降序
d = {'b': 1, 'a': 2, 'c': 10}
d_sorted_by_key = sorted(d.items(), key=lambda x: x[0]) # 根据字典键的升序排序
d_sorted_by_value = sorted(d.items(), key=lambda x: x[1]) # 根据字典值的升序排序
d_sorted_by_key
[('a', 2), ('b', 1), ('c', 10)]
d_sorted_by_value
[('b', 1), ('a', 2), ('c', 10)]
集合的排序
s = {3, 4, 2, 1}
sorted(s) # 对集合的元素进行升序排序
[1, 2, 3, 4]

def find_product_price(products, product_id):
    for id, price in products:
        if id == product_id:
            return price
    return None 
     
products = [
    (143121312, 100), 
    (432314553, 30),
    (32421912367, 150) 
]

print('The price of product 432314553 is {}'.format(find_product_price(products, 432314553)))

# 输出
The price of product 432314553 is 30
如果用字典存储这些数据会更高效
products = {
  143121312: 100,
  432314553: 30,
  32421912367: 150
}
print('The price of product 432314553 is {}'.format(products[432314553])) 

# 输出
The price of product 432314553 is 30

# list version
def find_unique_price_using_list(products):
    unique_price_list = []
    for _, price in products: # A
        if price not in unique_price_list: #B
            unique_price_list.append(price)
    return len(unique_price_list)

products = [
    (143121312, 100), 
    (432314553, 30),
    (32421912367, 150),
    (937153201, 30)
]
print('number of unique price is: {}'.format(find_unique_price_using_list(products)))

# 输出
number of unique price is: 3


# set version
def find_unique_price_using_set(products):
    unique_price_set = set()
    for _, price in products:
        unique_price_set.add(price)
    return len(unique_price_set)        

products = [
    (143121312, 100), 
    (432314553, 30),
    (32421912367, 150),
    (937153201, 30)
]
print('number of unique price is: {}'.format(find_unique_price_using_set(products)))

# 输出
number of unique price is: 3
比较字典和集合统计产品价格的运行时间
import time
id = [x for x in range(0, 100000)]  #初始化一个列表
price = [x for x in range(200000, 300000)]  
products = list(zip(id, price))  #拉链函数zip

# 计算列表版本的时间
start_using_list = time.perf_counter()  #计算器的时间格式,更精确
find_unique_price_using_list(products)
end_using_list = time.perf_counter()
print("time elapse using list: {}".format(end_using_list - start_using_list))
## 输出
time elapse using list: 41.61519479751587

# 计算集合版本的时间
start_using_set = time.perf_counter()
find_unique_price_using_set(products)
end_using_set = time.perf_counter()
print("time elapse using set: {}".format(end_using_set - start_using_set))
# 输出
time elapse using set: 0.008238077163696289

相关文章

  • 2019-06-28 字典和集合

  • 2. 字典和集合

    字典和集合相比于列表和元组,字典和集合的性能更优:主要体现在查找、增加和删除操作; 1. 字典和集合基础 字典是一...

  • 6 字典和集合——《Swift3.0从入门到出家》原创连载

    6 字典和集合——《Swift3.0从入门到出家》 字典和集合 字典 字典是集合类型存放多个键值对,其中键是唯一的...

  • Python字典和集合

    字典和集合的定义 字典:字典是由一系列键(key)和值(value)配对组成的元素的集合集合:和字典基本相同,唯一...

  • 【第11天】python全栈从入门到放弃

    1.字典和集合 集合是没有values的字典,集合和字典的key都必须不可变且可哈希 2. range和rando...

  • 走进 Typescript 数据结构(字典)

    集合、字典和散列表可以存储不重复的值。字典和集合相似,集合以[值,值]的形式存储元素,字典是以[键,值]的形式来存...

  • 字典和集合

    dict : key:不可变(可哈希)的数据类型 value:任意数据类型,对象。 大量的数据,关系型数据。查...

  • 字典和集合

    下面我们讨论Python基本数据类型中的字典和集合。 6.1 字典 我们都使用过汉语字典,它的原理是对汉语中的每个...

  • 字典和集合

    参考《Fluent Python》字典和集合 集合的本质是唯一元素的聚集,所以集合可以用来去重 集合也支持一些基础...

  • #抬抬小手学Python# 说完列表说字典,说完字典说集合

    字典与集合那些事儿 字典和集合为何总要放在一起,说来也巧,就是因为它们都用大括号 {} 包裹。 字典和集合那些基础...

网友评论

      本文标题:2019-06-28 字典和集合

      本文链接:https://www.haomeiwen.com/subject/yddecctx.html