有没有更古怪的方法来生成这个虚拟数据?
Is there a less oddball way to generate this dummy data?
输入:word_types的列表,例如[“动词”、“形容词”、“名称”、“名词”
期望的输出:每个 letter-word_type 组合的三个单词的字典 word_type。
即
{“verbs”:[“Averb1”,“Averb2”,“Averb3”],[Bverb1,...],...,“形容词”:[“Aadjective1”,“Aadjectives2”,“ AAdjectives3"] ...等
这是我用来生成数据的。
import string
A_to_Z = list(string.ascii_uppercase) # list of letters a-z
lettered_word_types = ["verb", "adjective", "name", "noun"]
class Lexicon:
def __init__(self, testing = True):
if testing == True:
for TYPE in lettered_word_types:
setattr(self, TYPE + "s", [letter + TYPE for letter in A_to_Z])
self.__dict__ = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in self.__dict__.items()}
data = Lexicon().__dict__
class 没有任何作用,它只会混淆您的操作。要直接音译您的代码以使用 dict
,您只需要:
result = {}
for TYPE in lettered_word_types:
result[TYPE + 's'] = [letter + TYPE for letter in A_to_Z]
result = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in result.items()}
所以,只是为了证明这确实是等价的:
In [1]: import string
...: A_to_Z = list(string.ascii_uppercase) # list of letters a-z
...: lettered_word_types = ["verb", "adjective", "name", "noun"]
...:
...: class Lexicon:
...: def __init__(self, testing = True):
...: if testing == True:
...: for TYPE in lettered_word_types:
...: setattr(self, TYPE + "s", [letter + TYPE for letter in A_to_Z])
...: self.__dict__ = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in self.__dict__.items()}
...:
...:
...: data = Lexicon().__dict__
In [2]: result = {}
In [3]: for TYPE in lettered_word_types:
...: result[TYPE + 's'] = [letter + TYPE for letter in A_to_Z]
...:
In [4]: result = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in result.items()}
In [5]: result == data
Out[5]: True
输入:word_types的列表,例如[“动词”、“形容词”、“名称”、“名词”
期望的输出:每个 letter-word_type 组合的三个单词的字典 word_type。
即
{“verbs”:[“Averb1”,“Averb2”,“Averb3”],[Bverb1,...],...,“形容词”:[“Aadjective1”,“Aadjectives2”,“ AAdjectives3"] ...等
这是我用来生成数据的。
import string
A_to_Z = list(string.ascii_uppercase) # list of letters a-z
lettered_word_types = ["verb", "adjective", "name", "noun"]
class Lexicon:
def __init__(self, testing = True):
if testing == True:
for TYPE in lettered_word_types:
setattr(self, TYPE + "s", [letter + TYPE for letter in A_to_Z])
self.__dict__ = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in self.__dict__.items()}
data = Lexicon().__dict__
class 没有任何作用,它只会混淆您的操作。要直接音译您的代码以使用 dict
,您只需要:
result = {}
for TYPE in lettered_word_types:
result[TYPE + 's'] = [letter + TYPE for letter in A_to_Z]
result = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in result.items()}
所以,只是为了证明这确实是等价的:
In [1]: import string
...: A_to_Z = list(string.ascii_uppercase) # list of letters a-z
...: lettered_word_types = ["verb", "adjective", "name", "noun"]
...:
...: class Lexicon:
...: def __init__(self, testing = True):
...: if testing == True:
...: for TYPE in lettered_word_types:
...: setattr(self, TYPE + "s", [letter + TYPE for letter in A_to_Z])
...: self.__dict__ = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in self.__dict__.items()}
...:
...:
...: data = Lexicon().__dict__
In [2]: result = {}
In [3]: for TYPE in lettered_word_types:
...: result[TYPE + 's'] = [letter + TYPE for letter in A_to_Z]
...:
In [4]: result = {key: [[element + "1", element + "2", element + "3"] for element in value] for key, value in result.items()}
In [5]: result == data
Out[5]: True