You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python random函数无法输出字典内容问题求助

问题分析与修复

你的代码存在两个核心错误,导致最终输出空字符串:

  • 函数内使用了比较运算符==而非赋值运算符=,没有将随机选中的值赋给random10
  • 全局变量random10在函数内修改时未声明global,Python会将其视为局部变量,无法影响外部的random10

修正方案1:修复原逻辑

调整赋值方式并声明全局变量,保留原有代码结构:

import random

random10 = ""
lda_10 = {
    1: "bahria town - overseas A",
    2: "bahria town - awais qarni block",
    3: "bahria town - shaheen block",
    4: "bahria town - shaheen block extension",
    5: "bahria town - Ghouri block",
    6: "bahria town - takbeer block",
    7: "bahria town - Gulbahar Block",
    8: "bahria town - Nargis Block",
    9: "bahria town - Iris Block",
    10: "bahria town - JASMINE block",
    11: "bahria town - Gulmohar block",
    12: "bahria town - block cc",
    13: "bahria town - Chambeli block",
    14: "bahria town - tulip block",
    15: "bahria town - janiper block",
    16: "bahria town - Overseas b",
    17: "bahria town - block dd",
    18: "bahria town - rafi block",
    19: "bahria town - iqbal block",
    20: "bahria town - shershah block",
    21: "bahria town - talha block",
    22: "bahria town - johar block",
    23: "bahria town - quaid block",
    24: "bahria town - Ghaznavi block",
    25: "bahria town - sikandar block",
    26: "bahria town - tipu sultan block",
    27: "bahria town - overseas A",
    28: "bahria town - overseas A",
    29: "bahria town - overseas A",
    30: "bahria town - awais qarni block",
    31: "bahria town - shaheen block",
    32: "bahria town - shaheen block",
    33: "bahria town - shaheen block",
    34: "bahria town - shaheen block extension",
    35: "bahria town - shaheen block extension",
    36: "bahria town - shaheen block extension",
    37: "bahria town - Ghouri block",
    38: "bahria town - takbeer block",
    39: "bahria town - takbeer block",
    40: "bahria town - takbeer block",
    41: "bahria town - Gulbahar Block",
    42: "bahria town - Gulbahar Block",
    43: "bahria town - Gulbahar Block",
    44: "bahria town - Nargis Block",
    45: "bahria town - Iris Block",
    46: "bahria town - Iris Block",
    47: "bahria town - Iris Block",
    48: "bahria town - JASMINE block",
    49: "bahria town - JASMINE block",
    50: "bahria town - JASMINE block",
    51: "bahria town - Gulmohar block",
    52: "bahria town - Gulmohar block",
    53: "bahria town - Gulmohar block",
    54: "bahria town - block cc",
    55: "bahria town - block cc",
    56: "bahria town - block cc",
}

def R_10():
    global random10  # 声明使用全局变量
    random10 = random.choice(list(lda_10.values()))  # 替换==为赋值运算符=

R_10()
print(random10)

修正方案2:更规范的写法(推荐)

避免使用全局变量,让函数直接返回随机结果,代码更简洁易维护:

import random

lda_10 = {
    1: "bahria town - overseas A",
    2: "bahria town - awais qarni block",
    3: "bahria town - shaheen block",
    4: "bahria town - shaheen block extension",
    5: "bahria town - Ghouri block",
    6: "bahria town - takbeer block",
    7: "bahria town - Gulbahar Block",
    8: "bahria town - Nargis Block",
    9: "bahria town - Iris Block",
    10: "bahria town - JASMINE block",
    11: "bahria town - Gulmohar block",
    12: "bahria town - block cc",
    13: "bahria town - Chambeli block",
    14: "bahria town - tulip block",
    15: "bahria town - janiper block",
    16: "bahria town - Overseas b",
    17: "bahria town - block dd",
    18: "bahria town - rafi block",
    19: "bahria town - iqbal block",
    20: "bahria town - shershah block",
    21: "bahria town - talha block",
    22: "bahria town - johar block",
    23: "bahria town - quaid block",
    24: "bahria town - Ghaznavi block",
    25: "bahria town - sikandar block",
    26: "bahria town - tipu sultan block",
    27: "bahria town - overseas A",
    28: "bahria town - overseas A",
    29: "bahria town - overseas A",
    30: "bahria town - awais qarni block",
    31: "bahria town - shaheen block",
    32: "bahria town - shaheen block",
    33: "bahria town - shaheen block",
    34: "bahria town - shaheen block extension",
    35: "bahria town - shaheen block extension",
    36: "bahria town - shaheen block extension",
    37: "bahria town - Ghouri block",
    38: "bahria town - takbeer block",
    39: "bahria town - takbeer block",
    40: "bahria town - takbeer block",
    41: "bahria town - Gulbahar Block",
    42: "bahria town - Gulbahar Block",
    43: "bahria town - Gulbahar Block",
    44: "bahria town - Nargis Block",
    45: "bahria town - Iris Block",
    46: "bahria town - Iris Block",
    47: "bahria town - Iris Block",
    48: "bahria town - JASMINE block",
    49: "bahria town - JASMINE block",
    50: "bahria town - JASMINE block",
    51: "bahria town - Gulmohar block",
    52: "bahria town - Gulmohar block",
    53: "bahria town - Gulmohar block",
    54: "bahria town - block cc",
    55: "bahria town - block cc",
    56: "bahria town - block cc",
}

def R_10():
    return random.choice(list(lda_10.values()))

# 调用函数并打印结果
print(R_10())

补充说明:你的字典中存在大量重复值,当前写法会让出现次数多的街区拥有更高的随机选中概率,这个逻辑是合理的。

内容的提问来源于stack exchange,提问作者noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:40:23