【发布时间】:2022-01-21 02:55:14
【问题描述】:
在 Python 中,我正在尝试编写两个函数。首先,我将一个列表作为参数并将其作为单个整数返回。其次,我将一个列表作为参数并将其作为一个集合返回。
当我尝试使用给定的测试函数运行程序时,我遇到了两个我无法解决的错误。 (A) 我收到一个类型错误,指出“strings = [str(integer) for integer in list_to_int]”不可迭代,并且 (B) 我有 an_integer 和 convert_set 的未引用变量。我试图重新排列断言函数并重做变量,但似乎没有任何效果。
def list_to_int(list):
"""
:param list
convert list to string
convert string to int
:return: set
"""
strings = [str(integer) for integer in list_to_int]
a_string = "".join(strings)
an_integer = int(a_string)
return an_integer
def list_to_set(list):
"""
:param list:
comvert to set
:return: set
"""
converted_set = set(list_to_set)
return converted_set
# TEST FUNCTIONS
assert list_to_int([1, 2, 3, 4]) == 1234, 'list_to_int([1, 2, 3, 4]) expected 1234'
print("correct")
assert list_to_int([4, 3, 2, 1]) == 4321, 'list_to_int([4, 3, 2, 1]) expected 4321'
print("correct")
assert list_to_int([3, 1, 2, 4]) == 3124, 'list_to_int([3, 1, 2, 4]) expected 3124'
print("correct")
assert list_to_set([1, 2, 3, 4]) == 1234, 'list_to_int([1, 2, 3, 4]) expected 1234'
print("correct")
assert list_to_set([4, 3, 2, 1]) == 4321, 'list_to_int([4, 3, 2, 1]) expected 4321'
print("correct")
assert list_to_set([3, 1, 2, 4]) == 3124, 'list_to_int([3, 1, 2, 4]) expected 3124'
print("correct")
【问题讨论】:
-
您正在尝试迭代对函数的引用而不是列表。将
strings = [str(integer) for integer in list_to_int]替换为strings = [str(integer) for integer in list].. 另外请考虑重命名list,使用保留关键字作为变量名绝不是一个好主意
标签: python list type-conversion integer set