另一个模块globals()中的Python字典没有';不行
file1.py另一个模块globals()中的Python字典没有';不行,python,dictionary,Python,Dictionary,file1.py a = {'fullname':'John Wick', 'Age': 35 , 'job':'Hitman'} b = {'fullname':'Mark Zuckerberg', 'Age': 30, 'job': 'Developer'} c = {'fullname':'Will smith', 'Age': 45, 'job': 'Actor'} d = {'fullname':'Messi' , 'Age': 28, 'job' : 'Player'} so on.
a = {'fullname':'John Wick', 'Age': 35 , 'job':'Hitman'}
b = {'fullname':'Mark Zuckerberg', 'Age': 30, 'job': 'Developer'}
c = {'fullname':'Will smith', 'Age': 45, 'job': 'Actor'}
d = {'fullname':'Messi' , 'Age': 28, 'job' : 'Player'}
so on... and many more details
注意:dict变量非常不同。
任务是从用户输入的“姓名”或“工作”中获取“年龄”
例如:用户输入梅西。。。他必须得到28分作为输出
File2.py
from File1.py import *
#what should the code be to access the age
user_input=raw_input("enter a Name: ")
# user_input contains the name of the person I want to get the Age
我尝试过使用globals(),但它使我的情况复杂化了
它创建一个列表,然后必须通过integer访问该列表
是否有任何方法可以搜索dict中的值并与IF条件匹配???是的,有一些方法可以做到这一点,但这会使情况变得复杂 首先,进一步简化您的程序:将远程代码拉入您的程序文件,并解决其中的访问问题。完成后,将其拆分为第二个文件 第二,如果您希望这些项目以一种您可以轻松搜索的形式出现,那么就这样做。此时,您特意将它们分离为不同的变量,而您显然希望将它们保持在一起。通过以下两种方式之一执行此操作: (1) 简单列表:
people = [
{'fullname':'John Wick', 'Age': 35 , 'job':'Hitman'},
{'fullname':'Mark Zuckerberg', 'Age': 30, 'job': 'Developer'},
{'fullname':'Will smith', 'Age': 45, 'job': 'Actor'},
{'fullname':'Messi' , 'Age': 28, 'job' : 'Player'}
]
现在,使用常规列表搜索方法查找匹配项
(2) 字典,按您希望的使用方式编制索引:
people = {
'John Wick': {'Age': 35 , 'job':'Hitman'},
'Mark Zuckerberg': {'Age': 30, 'job': 'Developer'},
'Will smith': {'Age': 45, 'job': 'Actor'},
'Messi': {'Age': 28, 'job' : 'Player'}
}
这样,您就可以通过直接引用,people[user\u input]
获得此人的记录
这会让您有所行动吗?尝试将file1.py创建为file1.txt的备份,并对该文件执行操作
在这里分享一个有用的小片段
import re
user_input=raw_input("enter a Name: ")
with open("file1.txt") as f:
for line in f:
#print line
matches = re.findall(r'\'(.+?)\'', line)
if user_input in matches:
age = re.findall(r'\d+', line)
print age
我对File1.py导入的
感到惊讶*
works@MosesKoledoye这只是一个小例子,我正在以类似的方式处理4000行数据。将其重新排列成这种格式将耗费大量时间。那么,如果有什么方法可以简单地说明我的当前情况?您的数据在一个单独的文件中,有4000个不同的变量名?是的!!!!!!!!这不是数据类型,但您可以将类似的内容联系起来,如果您将第一个名为file1.py的文件更改为file1.txt,则可能是这样done@Argus很对,;不要以那种形式使用数据:将其读入字典或列表,然后从那里使用。如果数据不变,则可以将其存储为引用,但以首选形式存储。不,这不能解决问题!请运行一个脚本,看看您是否可以通过这种方式获取和输出。。。很抱歉,这个想法会失败。我还没有分享完整的代码。请尝试使用python中的正则表达式库从打印行逻辑开始,您一定会成功。正则表达式将做什么???从文件内容中查找用户输入!!好极了那么,这将如何解决获得我的年龄的用户输入??这个想法与我的预期相差甚远,但谢谢你的尝试。谢谢你更新的代码。。。但我想用字典处理数据。你的方法并不能解决这个问题,你真的很想,然后你必须用正则表达式将字符串转换成字典,这太复杂了,你说从file1.py操作它不可能像你给出数据的方式那样,所有的dict都应该在一个列表中进行迭代,以达到你的目的。顺便说一句,这段代码符合你的目的