用python写一个代码输入数字到列表中,直到输入空值为止 依次将每个数字的最大数挑出来,生成一个新的列表[123,456,32,978,12347]==>[3,6,3,9,7]
时间: 2023-09-13 18:04:44 浏览: 76
### 回答1:
可以使用 while 循环来实现。在每次循环中,使用 input() 函数读取用户输入的数字,然后将其转换为整数。如果用户输入空值,则退出循环。在循环体内,使用 map() 函数将数字转换为字符串,并使用 max() 函数查找每个字符串中的最大字符,最后将结果添加到新的列表中。
```python
nums = []
while True:
num = input("请输入数字:")
if num == '':
break
nums.append(int(num))
max_digits = list(map(lambda x: int(max(str(x))), nums))
print(max_digits)
```
在这段代码中,用户在输入数字后按下回车键,程序会读取用户输入的数字并将其添加到列表nums中,当输入空值时会退出循环。在循环体外,使用map()函数对每个数字都进行操作,查找最大数,最后将结果添加到 max_digits 中
上面的例子中: [123,456,32,978,12347] ==> [3,6,3,9,7]
### 回答2:
下面是一个用 Python 编写的代码,实现了输入数字到列表中,直到输入空值为止,并将每个数字的最大数挑出来,生成一个新的列表。
```python
def get_max_digits(lst):
max_digits = []
for num in lst:
digits = [int(digit) for digit in str(num)]
max_digit = max(digits)
max_digits.append(max_digit)
return max_digits
numbers = []
while True:
number = input("请输入一个数字(输入空值结束):")
if number == "":
break
numbers.append(int(number))
max_numbers = get_max_digits(numbers)
print(max_numbers)
```
这个代码中,首先定义了一个函数 `get_max_digits`,它接受一个列表作为参数,遍历列表中的每个数字,将每个数字拆分为单个的数字,并找出其中的最大数,然后将最大数添加到新的列表 `max_digits` 中,并最后返回这个新的列表。
然后,通过一个无限循环,不断让用户输入数字,直到输入空值为止,将每个输入的数字转换为整数,并添加到列表 `numbers` 中。
最后,调用 `get_max_digits` 函数,将 `numbers` 作为参数传入,得到存储了最大数的新列表 `max_numbers`,并输出结果。
### 回答3:
可以使用以下代码实现:
```python
def find_max_digits(numbers):
max_digits = []
for number in numbers:
digits = [int(d) for d in str(number)] # 将数字转换为每位数字的列表
max_digit = max(digits) # 找出最大的数字
max_digits.append(max_digit) # 将最大的数字添加到新列表中
return max_digits
input_numbers = []
while True:
try:
num = input("请输入一个数字(输入空值结束):")
if num == '':
break
input_numbers.append(int(num))
except ValueError:
print("输入无效,请重新输入数字。")
max_digits = find_max_digits(input_numbers)
print(max_digits)
```
这段代码首先定义一个`find_max_digits`函数,它接受一个数字列表作为参数,然后遍历每个数字,将其转换为每位数字的列表,并找出最大的数字,然后将最大的数字添加到新的列表中。随后,程序通过一个`while`循环来逐步输入数字并将其添加到`input_numbers`列表中,直到输入一个空值为止。最后,调用`find_max_digits`函数来生成新的列表,并将其打印输出。