oeasy Python 142 容器_container_总结_list_summary

视频加载中...

容器_container_总结_list_tuple_set_dict_summary

回忆

首先什么是容器

容器嵌套

容器类型

容器次序

序列类型

sequential

second

subsequent

consequence

sequence

集合的顺序

{1, 2}
{2, 1}

字典 有次序

d = {"cat": "猫", "dog": "狗"}
d
d = {"dog": "狗", "cat": "猫"}
d

help(dict.popitem)

字典重要性

type({})

dict()
set()

集合和字典

特性

字典

集合

有序?

✅ 有序

❌ 无序

结构?

键值对

纯元素

唯一?

键唯一

元素唯一

可索引?

✅ 可索引

❌ 不可索引

变化过程

快递价格

具体操作

根据这个生成python代码,输入目的地,重量,得到价格

代码

# 字典 value 是元组:(首重价格, 续重价格)
price_data = {
    "江苏": (8, 2),
    "浙江": (8, 2),
    "上海": (8, 2),
    "安徽": (8, 2),
    "广东": (10, 5),
    "福建": (10, 5),
    "湖南": (10, 5),
    "湖北": (10, 5),
    "山东": (10, 5),
    "天津": (10, 5),
    "北京": (10, 5),
    "江西": (10, 5),
    "河南": (10, 5),
    "河北": (10, 5),
    "海南": (12, 8),
    "四川": (12, 8),
    "云南": (12, 8),
    "贵州": (12, 8),
    "陕西": (12, 8),
    "重庆": (12, 8),
    "山西": (12, 8),
    "广西": (12, 8),
    "吉林": (12, 8),
    "黑龙江": (12, 8),
    "内蒙古": (15, 12),
    "宁夏": (15, 12),
    "甘肃": (15, 12),
    "辽宁": (15, 12),
    "青海": (15, 12),
    "新疆": (22, 22),
    "西藏": (25, 25)
}

def calculate_price(destination, weight):
    # 判断省份是否存在
    if destination not in price_data:
        return None
    
    # 元组取值:第0位是首重,第1位是续重
    first_weight, continued_weight = price_data[destination]
    
    if weight <= 1:
        return first_weight
    else:
        extra = weight - 1
        # 不足1kg按1kg计算续重
        extra_kg = int(extra) if extra.is_integer() else int(extra) + 1
        return first_weight + extra_kg * continued_weight

# 测试运行
dest = input("请输入目的地省份:")
weight = float(input("请输入重量(kg):"))
price = calculate_price(dest, weight)

if price is None:
    print("未找到该地区价格")
else:
    print(f"运费:{price} 元")

具体问题

开局

Python 时区计算:5 个城市(北京、伦敦、纽约、东京、悉尼),输入出发地、起飞时间、目的地,自动算当地到达时间,带数据校验和跨天显示

核心结构

# 假设的飞行时长(单位:小时),确保包含所有城市之间的往返飞行时长
flight_duration = {
    ("北京", "伦敦"): 10,
    ("伦敦", "北京"): 10,
    ("北京", "纽约"): 13,
    ("纽约", "北京"): 13,
    ("北京", "东京"): 3,
    ("东京", "北京"): 3,
    ("北京", "悉尼"): 10,
    ("悉尼", "北京"): 10,
    ("伦敦", "纽约"): 7,
    ("纽约", "伦敦"): 7,
    ("伦敦", "东京"): 9,
    ("东京", "伦敦"): 9,
    ("伦敦", "悉尼"): 11,
    ("悉尼", "伦敦"): 11,
    ("纽约", "东京"): 14,
    ("东京", "纽约"): 14,
    ("纽约", "悉尼"): 16,
    ("悉尼", "纽约"): 16,
    ("东京", "悉尼"): 7,
    ("悉尼", "东京"): 7
}

# 假设的城市和时区信息(简化示例)
city_timezones = {
    "北京": 8,
    "伦敦": 0,
    "纽约": -5,
    "东京": 9,
    "悉尼": 10
}

# 手动输入出发地、起飞时间和目的地
while True:
    departure_city = input("请输入出发城市(例如:北京): ")
    if departure_city not in city_timezones:
        print("输入的出发城市不存在,请重新输入。")
        continue
    break

while True:
    departure_time_str = input("请输入出发时间(格式:HH:MM,例如:08:00): ")
    try:
        hours, minutes = map(int, departure_time_str.split(':'))
        if 0 <= hours < 24 and 0 <= minutes < 60:
            break
        else:
            print("出发时间格式不正确或超出范围,请重新输入。")
    except:
        print("出发时间格式不正确,请重新输入。")

while True:
    arrival_city = input("请输入到达城市(例如:纽约): ")
    if arrival_city not in city_timezones:
        print("输入的到达城市不存在,请重新输入。")
        continue
    if (departure_city, arrival_city) not in flight_duration:
        print("该航线不存在,请重新输入。")
        continue
    break

departure_timezone = city_timezones[departure_city]
arrival_timezone = city_timezones[arrival_city]
duration = flight_duration[(departure_city, arrival_city)]

# 将出发时间转换为分钟数
departure_time_minutes = hours * 60 + minutes
# 计算起飞时到达城市的当地时间(分钟数)
local_time_at_departure_in_arrival_city = departure_time_minutes + (arrival_timezone - departure_timezone) * 60
# 加上飞行时间(分钟数)得到到达时间(分钟数)
arrival_time_minutes = local_time_at_departure_in_arrival_city + duration * 60
# 计算经过的天数
days_passed = arrival_time_minutes // (24 * 60)
# 处理时间超过一天的情况,转换为当天的分钟数
arrival_time_minutes = arrival_time_minutes % (24 * 60)
# 转换回小时和分钟
arrival_hours = arrival_time_minutes // 60
arrival_minutes = arrival_time_minutes % 60

print(f"飞行时间为 {duration} 小时。")
if days_passed > 0:
    print(f"到达 {arrival_city} 的当地时间是次日 {arrival_hours:02d}:{arrival_minutes:02d} 点")
else:
    print(f"到达 {arrival_city} 的当地时间是 {arrival_hours:02d}:{arrival_minutes:02d} 点")

元组 与 字典

解释

转化

tuple([1, 2, 3])

流动

总结

类型名称

描述

可变性

举例

列表

list

[1,2,3]、["a","b"],list(1,2)

元组

tuple

(1,2)

字符串

str

"oeasy"

集合

set

set([1,2,3])

不可变集合

frozeset

frozenset([1,2,3])

字典

dict

{'a':1,'b':2}

展开阅读全文

更新时间:2026-09-09

标签:科技   容器   字典   悉尼   伦敦   东京   纽约   北京   序列   顺序   空大

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号

Top