Day 4 列表習題

2021-10-09 21:08:49 字數 4140 閱讀 8349

1.已知乙個數字列表,求列表中心元素。

list1 =[1

,2,3

,4,5

,6,7

,8]

# 方法一:

for num, j in

enumerate

(list1)

:pass

# print(num)

if num &1==

0:num /=

2 num =

int(num)

print

(list1[num]

)else

: num1 =

(num-1)

/2num1 =

int(num1)

num2 =

(num+1)

/2num2 =

int(num2)

# print(num1, num2)

print

(list1[num1]

, list1[num2]

)# 方法二:

count =

len(list1)

if count &1:

print

(list1[count//2]

)else

:print

(list1[count//2-

1], list1[count//2]

)

2.已知乙個數字列表,求所有元素和。

# 方法一:

sum_list1 =

0for i in list1:

sum_list1 += i

print

(sum_list1)

# 方法二:

print

(sum

(list1)

)

3.已知乙個數字列表,輸出所有奇數下標元素。

# 方法一:

for i in list1:

if i &1:

# print(i)

print

(list1[i]

)# 方法二:

for i in

range(1

,len

(list1),2

):print

(list1[i]

)# 方法三:

print

(list1[1:

:2])

4.已知乙個數字列表,輸出所有元素中,值為奇數的元素。

for i in list1:

if i &1:

print

(i)

5.已知乙個數字列表,將所有元素乘二。

例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]

for index, num in

enumerate

(list1)

: list1[index]

= num <<

1print

(list1)

# 簡化:

for index in

range

(len

(list1)):

list1[index]

<<

1print

(list1)

6.有乙個長度是10的列表,陣列內有10個人名,要求去掉重複的

例如:names = [『張三』, 『李四』, 『大黃』, 『張三』] -> names = [『張三』, 『李四』, 『大黃』]

name_list =

['a'

,'f'

,'r'

,'a'

,'b'

,'c'

,'r'

,'r'

,'u'

,'a'

]# 方法一:

new_names =

for name in name_list:

if name not

in new_names:

print

(new_names)

# 方法二:

for name in name_list[:]

:if name_list.count(name)

>1:

name_list.remove(name)

print

(name_list)

7.用乙個列表來儲存乙個節目的所有分數,求平均分數(去掉乙個最高分,去掉乙個最低分,求最後得分)

scores =[23

,14,45

,54,15

,66,26

]scores.remove(

max(scores)

)scores.remove(

min(scores)

# 方法一:

scores_sum =

0for i in scores:

scores_sum += i

print

(scores_sum/

len(scores)

)# 方法二:

print

(sum

(scores)

/len

(scores)

)

8.有兩個列表a和b,使用列表c來獲取兩個列表中公共的元素

例如: a = [1, 『a』, 4, 90] b = [『a』, 8, 『j』, 1] --> c = [1, 『a』]

a =[1

,2,5

,7,3

,2]b =[2

,5,8

,9,7

,]c =[

]for i in a:

if i in b and i not

in c:

print

(c)

9.有乙個數字列表,獲取這個列表中的最大值.(注意: 不能使用max函式)

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

list2 =[1

,3,5

,2,4

,8,1

,9,0

]# 方法一:

x =0

y =0

while x <

len(list2)

:for y in

range

(x+1

,len

(list2)):

if list2[x]

< list2[y]

: x = y

# print(x)

break

print

(list2[x]

)# 方法二:

max_num = list2[0]

for i in list2[1:

]:if i > max_num:

max_num = i

print

(max_num)

10.獲取列表**現次數最多的元素

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

name_list =

['a'

,'f'

,'r'

,'a'

,'b'

,'c'

,'r'

,'r'

,'u'

,'a'

]max_count =

0for x in name_list:

count = name_list.count(x)

if count > max_count:

max_count = count

new_chr =

for x in name_list:

if name_list.count(x)

== max_count and x not

in new_chr:

print

(new_chr)

day4 列表習題

1.已知乙個數字列表,求列表中心元素。num 78,67,52,78,99,23 n len num if n 2 0 x n 2 y n 2 1 print num x num y else print num n 2 2.已知乙個數字列表,求所有元素和。num 78,67,52,78,99,23...

day4 數字型別和列表基礎

num 23 num2 0b10101 在數字前加0b 0b表示二進位制數 二進位制數中只能有0和1兩個基數 print num2 num8 0o76 在數字前加0o 0o表示八進位制數 八進位制的基數 0 7 num16 0x3f 十六進製制數的基數 0 9,a f a f print num16...

湖南集訓Day4

上午的數論感覺還可以,嗯,感覺。因為畢竟我數學弱,只聽懂一半什麼的,感覺證明還是比較顯然的。話說這金牌爺長得好像我某物理老師啊 下午的題終於不是clj出的了,沒辣麼虐了。第一題疑似回文自動機,然而並不會,於是dp水了60分。第二題想了下應該是樹鏈剖分,然後發現搞不出來,回去水第一題,然後水完回來繼續...