示例:
输入:i j k
输入n=4 的值
输出:I1 I2 I3 I4 J1 J2 J3 J4 K1 K2 K3 K4
我似乎无法把单词和数字分开。我得到
I 1 I 2 I 3 I 4 J 1 J 2 J 3 J 4 K 1 K 2 K 3 K 4
而不是
I1 I2 I3 I4 J1 J2 J3 J4 K1 K2 K3 K4
my_list = input("Input: ")
up_list = my_list.upper()
var =''
new_list2 = ""
lists = up_list.split()
n = int(input("Enter a value for n: "))
for x in lists:
for y in range(1, n+1):
w = str(y)
new_list = ('{}{}'.format(x, y))
new_list2 += new_list
for i in new_list2:
var += i
var += " "
print(var)
使用列表理解:
lst = input("Input: ").upper().split()
n = int(input("Enter a value for n: "))
pairs = ' '.join(f'{s}{i}' for s in lst for i in range(1, n+1))
print(pairs)
# I1 I2 I3 I4 J1 J2 J3 J4 K1 K2 K3 K4
my_list
、up_list
和new_list2
是字符串,而不是列表。为了清晰起见,您应该为变量命名,以描述变量的用途。
此外,您可以在new_list
中创建输出的每个元素,然后将其附加到字符串new_list2
,然后迭代该字符串的每个字符,并将其添加到字符串var
(其间留有空格(。这毫无意义。相反,您可以简单地创建一个列表,将其填充到嵌套循环中,然后使用str.join
打印用空格分隔的列表,或者将列表拆包到print
函数中并指定分隔符。
考虑以下内容:
letters = input("Input: ").upper().split()
n = int(input("Enter a value for n: "))
result = [] # Create an empty LIST
for letter in letters:
for i in range(1, n+1):
result.append(f"{letter}{i}")
print(" ".join(result))
# or
print(*result, sep=" ")
您可以将嵌套的循环压缩为列表理解,如下所示:
result = [f"{letter}{i}" for letter in letters for i in range(1, n+1)]
或者,如果您只想打印它,您可以使用驱动列表理解的生成器表达式作为str.join
:的参数
print(" ".join(f"{letter}{i}" for letter in letters for i in range(1, n+1)))
letters = input("Type letters:")
letters = letters.upper()
letter_list = letters.split(" ")
n = int(input("Enter a value for n: ")) # assuming you will only input an integer here
for letter in letter_list:
for i in range(1, n+1):
print(f"{letter}{i}", end=" ")
或者,如果您出于任何原因试图保存字符串,这也会起作用:
letters = input("Type letters:")
letters = letters.upper()
letter_list = letters.split(" ")
n = int(input("Enter a value for n: "))
my_str = ""
for letter in letter_list:
for i in range(1, n+1):
my_str += f"{letter}{i} "
print(my_str)
在第二个for循环中:
for i in new_list2:
var += i
var += " "
你可以这样做,这样每个人都有空间:
for i in range(len(new_list2)):
var += new_list2[i]
if i % 2 == 0:
var += " "
如果我从您的代码开始,问题仅由new_list2
的两行引起。它应该是一个列表(而不是字符串(,并且应该附加(而不是添加(值。这是新代码,非常接近您的代码。但是,您应该真正注意类型、名称和每个变量之间的对应关系。
my_list = input("Input: ")
up_list = my_list.upper()
var =''
new_list2 = [] # instead of new_list2 = ""
lists = up_list.split()
n = int(input("Enter a value for n: "))
for x in lists:
for y in range(1, n+1):
w = str(y)
new_list = ('{}{}'.format(x, y))
new_list2.append(new_list) # instead of new_list2 += new_list
for i in new_list2:
print(i)
var += i
var += " "
print(var) # I1 I2 I3 I4 J1 J2 J3 J4 K1 K2 K3 K4
其他答案将为您提供更多pyhtonic和优化的代码。