python - 嵌套的 While 循环没有按照我想要的方式工作
问题描述
我最近开始学习 Python,我是 stack overflow的新手。我一直在为下面的代码失眠。我知道错误一定很愚蠢,但我似乎找不到它:(
有人可以帮我弄清楚为什么我的代码没有输出以下内容:
[
{"first_name": "Elisabeth", "last_name": "Gardenar", "city": "Toledo", "state": "OH"},
{"first_name": "Jamaal", "last_name": "Du", "city": "Sylvania", "state": "OH"},
{"first_name": "Kathlyn", "last_name": "Lavoie", "city": "Maumee", "state": "OH"}
]
这是我的代码:
def convert_table(table_data):
new_table = []
user_dict = {}
row = 1
i = 0
while row < len(table_data):
while i < len(table_data[0]):
user_dict[table_data[0][i]] = table_data[row][i]
i += 1
new_table.append(user_dict)
row += 1
return new_table
table_data = [
["first_name", "last_name", "city", "state"],
["Elisabeth", "Gardenar", "Toledo", "OH"],
["Jamaal", "Du", "Sylvania", "OH"],
["Kathlyn", "Lavoie", "Maumee", "OH"]
]
print(convert_table(table_data))
这是当前的输出:
[
{'first_name': 'Elisabeth', 'last_name': 'Gardenar', 'city': 'Toledo', 'state': 'OH'},
{'first_name': 'Elisabeth', 'last_name': 'Gardenar', 'city': 'Toledo', 'state': 'OH'},
{'first_name': 'Elisabeth', 'last_name': 'Gardenar', 'city': 'Toledo', 'state': 'OH'}
]
解决方案
实际上,您需要在外循环中重置user_dict
& :i
def convert_table(table_data):
new_table = []
row = 1
while row < len(table_data):
user_dict = {}
i = 0
while i < len(table_data[0]):
user_dict[table_data[0][i]] = table_data[row][i]
i += 1
new_table.append(user_dict)
row += 1
return new_table
推荐阅读
- python - pymysql - 将两个不同的查询结果组合成
- java - EditText 没有价值
- ios - 在 React Native 中集成 iOS 组件
- python - Pygame - 尝试射击时崩溃
- loops - 即使没有循环,Shopify 液体 product.thumbnail.liquid 也会重复阻止
- selenium - selenium clear() 命令不清除元素
- fonts - 与图片的其余部分相比,节点字体大小很大
- python - 熊猫:如果不是日期时间,则删除行
- primefaces - 如何将数据从 selectManyCheckbox 发送到 bean?
- node.js - 如何在承诺中停止处理nodejs