Python入门到实战——Chapter6字典

文章介绍了Python中字典的基本概念,如键值对的创建、修改、删除,以及如何使用`get`函数处理键不存在的情况。此外,还讲解了字典的嵌套使用,包括列表和字典的嵌套,以及如何遍历和操作这些复杂数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

alien_0={"color": "black", "points": 5}
print(alien_0["color"])
print(alien_0["points"])

"""
字典键值对,每一个键都和一个值相关联
"""
new_points=alien_0["points"]
print(f"You just earned {new_points} points!")
alien_0["x_position"]=25
alien_0["y_position"]=50
print(alien_0)
"""
删除键值对
"""
del alien_0["x_position"]
print(alien_0)
point_value= alien_0.get("y_position","No point value assigned")
print(point_value)
point_value1= alien_0.get("x_position","No point value assigned")
print(point_value1)

"""
get来访问值,get()第一个参数用来指定键,第二用于指定键不存在时返回的值
"""

for k,v in alien_0.items():#循环的每次迭代,将字典中的键赋值给变量k,将对应的值赋值给变量v。
    """
    items()是字典对象的一个方法,用于返回一个包含字典中所有键值对的可迭代对象。
    """
    print(k)
    print(v)

favorite_language={
    "Jenny":"python",
    "samsung":"JavaScript",
    "phil": "Go",
    "Jimmy" : "Java",
}

for k,v in favorite_language.items():
    print(f"{k.title()}'s favorite language is {v.title()}")
print()
for k in favorite_language.keys():
    print(f"{k.title()} is invited in this investigation")

friends=["Jenny","phil"]
for name in favorite_language.keys():
    print(f"Hi {name}")
    if name in friends:
        language = favorite_language[name].title()
        print(f"\t{name.title()}, I see you love {language.upper()}")

"""
字典和集合很容易混淆,因为他们都是用一对花括号来定义,当花括号没有键对值时,定义的很可能是集合!
集合不以特定的顺序存储元素
"""

"""
在列表中嵌套字典
"""
alien_0={"color": "red", "point":5}
alien_1={"color": "green", "point":8}
alien_2={"color": "blue", "point":9}
aliens=[alien_0,alien_1,alien_2]
for i in aliens:
    print(i)

"""
在字典中嵌套列表
"""
pizza={
    "crust":"thick",
    "troppings":["mushrooms","extra cheese"]
}
print(f"You ordered a {pizza['crust']} pizza with following troppings:")
"""
修正后的代码使用了单引号来引用字典中的键,以避免与外层的双引号产生冲突。
"""
for i in pizza["troppings"]:
    print("\t"+i)

"""
在字典中存储字典
"""
users={
    "admin1":{
        "first name": "John",
        "last name": "Moma",
        "location": "Beijing"
    },
    "admin2":{
        "first name": "Johnny",
        "last name": "Diogo",
        "location": "Shanghai"
    }
}
for k,v in users.items():
    print(f"Usernames: {k.title()}")
    fullname = f"{v['first name']} {v['last name']}"
    location=f"{v['location']}"
    print("\t"+f"Fullname is {fullname.title()}")
    print("\t"+f"Location is {location.title()}")
    

<think>好的,用户想在VirtualBox中扩展Ubuntu的.vdi虚拟磁盘文件。首先,我需要回忆一下VirtualBox的相关操作。记得可以通过VBoxManage命令来调整虚拟磁盘的大小,但调整后Ubuntu系统里的分区可能还需要扩展,比如使用GParted工具。 用户可能已经创建了一个Ubuntu虚拟机,但后来发现磁盘空间不足。这时候需要两个步骤:首先是调整虚拟磁盘文件的大小,然后在Ubuntu内部调整分区。需要注意的是,VirtualBox的图形界面没有直接调整现有磁盘大小的选项,所以必须用命令行工具VBoxManage。 接下来,我应该先检查用户是否已经安装了VirtualBox的扩展包,因为某些功能可能需要它。然后,确认.vdi文件的路径,避免操作错误。调整磁盘大小后,用户启动Ubuntu,但发现存储空间没变,这是因为分区表没有自动扩展,这时候需要进入Live环境使用GParted调整分区。 可能用户会遇到的问题包括:路径中有空格需要引号,调整分区时遇到错误,或者调整大小后系统无法启动。需要提醒用户备份重要数据,以防万一操作失误导致数据丢失。此外,如果用户使用的是动态分配的磁盘,调整大小后实际文件可能不会立即变化,但上限会增加。 最后,步骤需要详细但清晰,确保用户能够一步步跟着操作,同时解释每个步骤的目的,比如为什么需要运行sudo apt install gparted,以及如何正确使用GParted界面调整分区。可能还需要说明在调整分区时,确保分区未被挂载,所以推荐使用Live USB或光盘启动。</think>在VirtualBox中扩展Ubuntu虚拟磁盘(.vdi)需要分两步操作:**调整虚拟磁盘容量** + **扩展系统分区**。以下是详细步骤: --- ### 一、调整虚拟磁盘容量 1. **关闭虚拟机** 确保Ubuntu处于完全关闭状态(非休眠)。 2. **通过命令行调整.vdi大小** 打开终端(Windows:CMD/PowerShell;macOS/Linux:Terminal),执行: ```bash VBoxManage modifyhd "你的虚拟机路径/Ubuntu.vdi" --resize 新大小(MB) ``` 示例:将磁盘扩容至50GB: ```bash VBoxManage modifyhd "C:\VMs\Ubuntu.vdi" --resize 51200 ``` --- ### 二、扩展Ubuntu系统分区 #### 方法1:使用GParted(推荐) 1. **下载GParted Live镜像** 访问 [gparted.org](https://gparted.org/download.php) 下载ISO文件。 2. **挂载GParted镜像到虚拟机** - VirtualBox中选中Ubuntu虚拟机 → 设置 → 存储 → 添加光驱 → 选择GParted ISO文件。 3. **启动虚拟机并从ISO引导** - 启动时按 `F12` 选择从光驱启动 → 进入GParted Live界面后选择默认选项。 4. **调整分区** - 在GParted界面中找到主分区(通常是 `/dev/sda1`)。 - 右键分区 → **Resize/Move** → 拖动滑块填满未分配空间 → 点击✅应用操作。 #### 方法2:命令行扩展(需安装`cloud-guest-utils`) 1. **启动Ubuntu并安装工具**: ```bash sudo apt update && sudo apt install cloud-guest-utils ``` 2. **扩展分区**: ```bash sudo growpart /dev/sda 1 # 注意数字1代表分区编号 sudo resize2fs /dev/sda1 # 调整文件系统 ``` --- ### 关键注意事项 1. **备份重要数据** 磁盘操作有风险,建议提前对虚拟机创建快照(`右键虚拟机 → 快照 → 创建`)。 2. **动态分配 vs 固定大小** - 动态分配:`.vdi`文件实际大小会逐步增长到设置的上限。 - 固定大小:调整后需要手动重新分配。 3. **常见错误** - 若提示 `VBoxManage not found`,请将VirtualBox安装目录添加到系统PATH环境变量。 - 调整分区时遇到"unallocated space无法合并",需确保分区右侧有连续未分配空间。 --- 完成上述操作后,重启Ubuntu,通过 `df -h` 命令检查磁盘容量是否已扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值