day7 列表和字典作業

2021-10-17 20:02:54 字數 4414 閱讀 3830

1.建立乙個列表,列表中有10個舒宗, 保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序

例如:隨機生成了[70,

88,91,

70,107,

234,91,

177,

282,

197]--

- 去重之後 [70,

88,91,

107,

234,

177,

282,

197]--

-- 降序排序 [

282,

234,

197,

177,

107,91,

88,70]

nums =[70

,88,91

,70,107

,234,91

,177

,282

,197

]length =

len(nums)

for _ in

range

(length)

: num = nums.pop(

)if num not

in nums:

nums.insert(

0, num)

nums.sort(reverse=

true

)print

(nums)

2.利用列表推導式, 完成以下需求

a. 生成乙個存放1-100中各位數為3的資料列表

結果為 [3, 13, 23, 33, 43, 53, 63, 73, 83, 93]
list1 =

[x for x in

range(1

,101

)if x %

10==3]

print

(list1)

b. 利用列表推到是將 列表中的整數提取出來

例如:[

true,17

,"hello"

,"bye",98

,34,21

]---

[17,98

,34,21

]

list1 =

[true,17

,"hello"

,"bye",98

,34,21

]list2 =

[x for x in list1 if

type

(x)==

int]

print

(list2)

c.利用列表推導式 存放指定列表中字串的長度

例如 [

"good"

,"nice"

,"see you"

,"bye"]-

--[4

,4,7

,3]

list1 =

["good"

,"nice"

,"see you"

,"bye"

]list2 =

[len

(x)for x in list1]

print

(list2)

3.已知**如下,請回答出各個print的結果 並說明原因

nums =[17

,39,28

,51]nums2 = nums

nums2.pop(

)print

(len

(nums)

)# 這個結果是什麼 請描述原因

"""結果是3

nums2和nums指向的都是同一片位址,也就是同乙個列表

當對nums2進行操作時,num也會進行同樣的操作

"""numlist =[17

,22,39

,58,[

55,43]

]nums3 = numlist.copy(

)print

(numlist is nums3)

# 結果 原因是什麼

numlist[-1

][0]

=99print

(nums3)

# num3會不會發生變化

"""第乙個print結果是false,因為nums3是複製numlist後在記憶體中新開闢空間存下的列表,和numlist不是同乙個

num3會發生變化,numlist和nums3裡面的小列表都指向同乙個位址,是同乙個小列表

"""

4.定義乙個列表,在列表中儲存6個學生的資訊(學生資訊中包括: 姓名、年齡、成績(單科)、**、性別(男、女、不明) )

a.統計不及格學生的個數

b.列印不及格學生的名字和對應的成績

c.統計未成年學生的個數

d.列印手機尾號是8的學生的名字

e.列印最高分和對應的學生的名字

​ f.刪除性別不明的所有學生

​ g.將列表按學生成績從大到小排序(掙扎一下,不行就放棄)

students =[,

,,,,

]#a.

unpass_num =

0for stu in students:

if stu[

'score'

]<60:

unpass_num +=

1print

(f'不及格學生人數:'

)#b.

print

('不及格的人'

)for stu in students:

if stu[

'score'

]<60:

print

('name:'

, stu[

'name'],

' score:'

, stu[

'score'])

#c.underage_num =

0for stu in students:

if stu[

'age'

]<18:

underage_num +=

1print

(f'未成年學生人數:'

)#d.

# 方法一

print

('手機尾號為8的學生:'

,[stu[

'name'

]for stu in students if

int(stu[

'tel'])

%10==8

])#e.max_score =

max(stu[

'score'

]for stu in students)

print

('最高分的分數和對應的學生'

,[stu[

'name'

]for stu in students if stu[

'score'

]== max_score]

, max_score)

# 方法二:

result =

max(students, key=

lambda x: x[

'score'])

print

(result)

#f.temp = students[:]

# 拷貝乙份,對temp進行掃瞄,對students進行刪除操作

for stu in temp:

if stu[

'gender']==

'不明'

: students.remove(stu)

print

(students)

#g.# 方法一

for i in

range

(len

(students)):

for j in

range

(i +1,

len(students)):

if students[i]

['score'

]< students[j]

['score']:

students[i]

, students[j]

= students[j]

, students[i]

print

(students)

# 方法二

new_students =

sorted

(students, key=

lambda

, x: x[

'score'

], reverse=

true

)print

(new_stduents)

day7 列表和字典作業

1.建立乙個列表,列表中有10個元素,保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 282,234,197,177,...

day7 列表和字典作業

1.建立乙個列表,列表中有10個資料,保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 282,234,197,177,...

day7 列表和字典作業

1.建立乙個列表,列表中有10個數字,保證列表中元素的順序,對列表進行排重,並對列表使用進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 282,234,197,177,...