实操

1. 已知一个数字列表,求列表中心元素。

list1 = [1, 2, 3, 4, 5, 6]
if len(list1) % 2 == 0:
    print(list1[len(list1)//2-1:len(list1)//2+1])
else:
    print(list1[len(list1)//2])

2. 已知一个数字列表,求所有元素和。

list2 = [1, 2, 3, 4, 5, 6, 7, 8]
sum1 = sum(list2)
sum2 = 0
for num in list2:
    sum2 += num
print(sum1, sum2)

3. 已知一个数字列表,输出所有奇数下标元素。

list3 = [1, 2, 3, 4, 5, 6, 7, 8]
print(list3[1::2])

for index in range(1, len(list3), 2):
    print(list3[index], end=',')
print()
for index in range(len(list3)):
    if index % 2 == 1:
        print(list3[index], end=',')

4. 已知一个数字列表,输出所有元素中,值为奇数的。

list4 = [1, 2, 3, 4, 5, 6, 7, 8]
for num in list4:
    if num % 2 == 1:
        print(num, end=',')

5. 已知一个数字列表,将所有元素乘二。

list5 = [1, 2, 3, 4, 5, 6, 7, 8]
for index in range(len(list5)):
    list5[index] *= 2
print(list5)

6. 有一个长度是10的列表,数组内有10个人名,要求去掉重复的

例如:names = ['张三', '李四', '大黄', '张三'] -> names = ['张三', '李四', '大黄']
names = ['张三', '大黄', '大黄', '张三', '张始', '张尔', '张五', '张琪', '张六', '张五']

# 方法一
names = list(set(names))
print(names)
# 方法二
temp_names = names[:]
for index in range(len(names[:])-1, -1, -1):
    if temp_names.pop(index) in temp_names:
        names.pop(index)
print(names)
# 方法三(问题未解决)
names = ['张三', '大黄', '大黄', '张三', '张始', '张尔', '张五', '张琪', '张六', '张五']
index = 0
temp_names = names[:]
while index < len(temp_names):
    if temp_names.pop(index) in temp_names:
        names.pop(index)
        continue
    index += 1
print(names)

7. 已经一个数字列表(数字大小在0~6535之间), 将列表转换成数字对应的字符列表

例如: list1 = [97, 98, 99] -> list1 = ['a', 'b', 'c']

list7_char = []
for num in range(6536):
    list7_char.append(chr(num))
print(list7_char)
print(chr(97))

8. 用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)

list8 = [87, 98, 96, 90, 95, 93, 91]
list8.sort()
list8.pop(0)
list8.pop()
score_sum1 = sum(list8)
score_sum2 = 0
for item in list8:
    score_sum2 += item
average_score1 = score_sum1 / len(list8)
average_score2 = score_sum2 / len(list8)
print(list8)
print(average_score1, average_score2)

9. 有两个列表A和B,使用列表C来获取两个列表中公共的元素

例如: A = [1, 'a', 4, 90] B = ['a', 8, 'j', 1] --> C = [1, 'a']

A = [1, 'a', 4, 90]
B = ['a', 8, 'j', 1]
C = []
for item in A:
    if item in B:
        C.append(item)
print(C)

10. 有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)

例如: nums = [19, 89, 90, 600, 1] —> 600

nums = [19, 89, 90, 600, 1]
temp = nums[0]
for num in nums:
    if temp < num:
        temp = num
print(temp)

11. 获取列表中出现次数最多的元素

例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3

# 方法一:利用内置函数count()
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
temp_nums = list(set(nums))
counts = []
for num in temp_nums:
    counts.append(nums.count(num))
for index in range(len(counts)):
    if max(counts) == counts[index]:
        print('列表中出现次数最多的元素是:', temp_nums[index])
# 方法二:使用原始统计方法
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3]
temp_nums = list(set(nums))
count_1 = count_2 = count_3 = count_4 = count_7 = 0
for num in nums:
    if num == 1:
        count_1 += 1
    elif num == 2:
        count_2 += 1
    elif num == 3:
        count_3 += 1
    elif num == 4:
        count_4 += 1
    else:
        count_7 += 1
counts = [count_1, count_2, count_3, count_4, count_7]
for index in range(len(counts)):
    if max(counts) == counts[index]:
        print('列表中出现次数最多的元素是:', temp_nums[index])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。