如何处理灵活的输入和 returns 只有大写的键?
How to handle flexible inputs and returns only keys in uppercase?
理想的输出或结果应该如下所示:
>>> uppercase_keys_from_kwargs(twn='Taiwan')
['TWN']
>>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan')
['TWN', 'JPN']
>>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania")
['TWN', 'JPN', 'LTU']
>>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania", svn='Slovenia')
['TWN', 'JPN', 'LTU', 'SVN']
我的代码只能获取密钥:
def uppercase_keys_from_kwargs(**kwargs) -> list:
keys_only = kwargs.keys()
list_for_keys_only = list(keys_only)
return(list_for_keys_only)
我的输出:
>>> print(uppercase_keys_from_kwargs(twn='Taiwan'))
['twn']
>>> print(uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan'))
['twn', 'jpn']
>>> print(uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania"))
['twn', 'jpn', 'ltu']
>>> print(uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania", svn='Slovenia'))
['twn', 'jpn', 'ltu', 'svn']
尝试添加如下内容:
# for k in kwargs.items():
# kwargs.update(k.upper())
但没有用。似乎是 AttributeError
.
我们可以在 dict.keys
上使用 map
with str.upper
。
def uppercase_keys_from_kwargs(**kwargs):
return list(map(str.upper, kwargs.keys()))
输出:
uppercase_keys_from_kwargs(twn='Taiwan')
# ['TWN']
uppercase_keys_from_kwargs(
twn="Taiwan", jpn="Japan", ltu="Lithuania", svn="Slovenia"
)
# ['TWN', 'JPN', 'LTU', 'SVN']
试试这个:
def uppercase_keys_from_kwargs(**kwargs) -> list:
keys_only = kwargs.keys()
list_for_keys_only = [k.upper() for k in keys_only]
return(list_for_keys_only)
print (uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania"))
输出:
['TWN', 'JPN', 'LTU']
理想的输出或结果应该如下所示:
>>> uppercase_keys_from_kwargs(twn='Taiwan')
['TWN']
>>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan')
['TWN', 'JPN']
>>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania")
['TWN', 'JPN', 'LTU']
>>> uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania", svn='Slovenia')
['TWN', 'JPN', 'LTU', 'SVN']
我的代码只能获取密钥:
def uppercase_keys_from_kwargs(**kwargs) -> list:
keys_only = kwargs.keys()
list_for_keys_only = list(keys_only)
return(list_for_keys_only)
我的输出:
>>> print(uppercase_keys_from_kwargs(twn='Taiwan'))
['twn']
>>> print(uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan'))
['twn', 'jpn']
>>> print(uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania"))
['twn', 'jpn', 'ltu']
>>> print(uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania", svn='Slovenia'))
['twn', 'jpn', 'ltu', 'svn']
尝试添加如下内容:
# for k in kwargs.items():
# kwargs.update(k.upper())
但没有用。似乎是 AttributeError
.
我们可以在 dict.keys
上使用 map
with str.upper
。
def uppercase_keys_from_kwargs(**kwargs):
return list(map(str.upper, kwargs.keys()))
输出:
uppercase_keys_from_kwargs(twn='Taiwan')
# ['TWN']
uppercase_keys_from_kwargs(
twn="Taiwan", jpn="Japan", ltu="Lithuania", svn="Slovenia"
)
# ['TWN', 'JPN', 'LTU', 'SVN']
试试这个:
def uppercase_keys_from_kwargs(**kwargs) -> list:
keys_only = kwargs.keys()
list_for_keys_only = [k.upper() for k in keys_only]
return(list_for_keys_only)
print (uppercase_keys_from_kwargs(twn='Taiwan', jpn='Japan', ltu="Lithuania"))
输出:
['TWN', 'JPN', 'LTU']