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

如何从含数字与单词的用户输入列表中提取数字存入字典

问题分析与解决

先说说你原代码里的几个问题:

  • string3=[string2]完全多余,string2已经是split分割后的列表,你把它再套一层嵌套列表,遍历的时候拿到的是整个原列表,根本不是单个元素
  • 输入的所有内容都是字符串类型,isinstance(i, int)永远不会成立,得判断字符串能不能转成数字
  • 提取数字用列表就够了,没必要用字典,除非你要额外存数字的位置信息,但你的需求只是提取数字打印

最简实现代码

# 获取输入并分割成元素列表
input_content = input("请输入由空格分隔的正数和单词:")
item_list = input_content.split()

# 提取其中的数字
numbers = []
for item in item_list:
    # 判断是否是正数字符串
    if item.isdigit():
        # 转成int类型,也可以保留字符串形式
        numbers.append(int(item))

# 打印结果
print(numbers)

如果一定要用字典(比如存数字的位置)

input_content = input("请输入由空格分隔的正数和单词:")
item_list = input_content.split()

number_dict = {}
for idx, item in enumerate(item_list):
    if item.isdigit():
        # 键为元素位置索引,值为数字;也可以把数字作为键,位置作为值,按需调整
        number_dict[idx] = int(item)

print(number_dict)

拓展:处理小数/负数的情况

如果需要识别小数或者负数,用isdigit()就不够了,得用异常捕获的方式:

numbers = []
for item in item_list:
    try:
        # 转成float兼容小数,转int则只保留整数
        num = float(item)
        numbers.append(num)
    except ValueError:
        # 不是数字,跳过该元素
        continue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:35:23