编写Python程序,输入一个包含若干任意数据的列表,输出 该列表中等价于True的元素组成的列表。例如,输入[1, 2, 0, None, False, 'a'],输出[1, 2, 'a'] 给出几种任意不同方法
时间: 2024-09-25 19:03:16 浏览: 54
在Python中,你可以使用列表推导式或者简单的循环结构来实现这个功能。这里提供两种不同的方法:
**方法一:列表推导式**
```python
def filter_true_values(input_list):
return [element for element in input_list if bool(element) == True]
input_data = [1, 2, 0, None, False, 'a']
filtered_list = filter_true_values(input_data)
print(filtered_list)
```
**方法二:传统的for循环**
```python
def filter_true_values(input_list):
filtered_output = []
for element in input_list:
if element is True or (isinstance(element, str) and element.lower() == 'true') or (isinstance(element, bool) and element):
filtered_output.append(element)
return filtered_output
input_data = [1, 2, 0, None, False, 'a']
filtered_list = filter_true_values(input_data)
print(filtered_list)
```
在这两个例子中,我们遍历输入列表,检查每个元素是否等于`True`(布尔值),或者是字符串形式的"True",或者是一个可以转换为真值的其他类型的值(如整数1)。如果是,我们就把它添加到结果列表中。
阅读全文