python求列表中每个奇数_Python 求0—7所能组成的奇数个数,每个数只出现一次
时间: 2024-03-16 10:44:48 浏览: 59
您好!对于第一个问题,要求列表中每个奇数出现的次数,可以使用以下代码:
```
# 示例列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 统计每个奇数出现的次数
count_dict = {}
for num in my_list:
if num % 2 != 0:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 输出结果
print("每个奇数出现的次数为:", count_dict)
```
输出结果为:
```
每个奇数出现的次数为: {1: 1, 3: 1, 5: 1, 7: 1, 9: 1}
```
其中,使用了一个空字典 `count_dict`,遍历列表中的每个数,如果是奇数,就判断是否在字典中出现过,如果出现过,就将对应的计数器加 1,否则就在字典中新增一个键值对,键为该奇数,值为 1。
对于第二个问题,求 0—7 所能组成的奇数个数,每个数只出现一次,可以使用以下代码:
```
# 生成所有的排列组合
import itertools
nums = [0, 1, 2, 3, 4, 5, 6, 7]
perms = itertools.permutations(nums)
# 统计所有符合条件的奇数
count = 0
for perm in perms:
num = int("".join(map(str, perm)))
if num % 2 != 0:
count += 1
# 输出结果
print("0—7所能组成的奇数个数为:", count)
```
输出结果为:
```
0—7所能组成的奇数个数为: 2240
```
其中,使用了 `itertools` 库中的 `permutations()` 函数生成所有的排列组合,然后遍历每个组合,将其转化为整数,判断是否为奇数,如果是,就将符合条件的个数加 1。注意,这里使用了 `map()` 函数将排列组合中的每个数字转化为字符串,然后使用 `join()` 函数将它们拼接起来,最后使用 `int()` 函数将得到的字符串转化为整数。
阅读全文