ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day6 列表作业(修改)

2020-12-16 10:59:36  阅读:148  来源: 互联网

标签:nums day6 list1 作业 列表 print new nums2


day6 列表作业(修改)

# 1.生成50-300之间可重复的 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]
new_nums=[]
for x in nums:
    if x not in new_nums:
        new_nums.append(x)
print(new_nums)
new_nums.sort(reverse=True)
print(new_nums)

# 参考答案
from random import randint
# nums=[]
# for _ in range[10]:
#     nums.append(randint(50,300))
nums=[randint(50,300) for _ in range(10)]
new_nums=[]
# print(nums)
for x in nums:
    if x not in new_nums:
        new_nums.append(x)
# print(new_nums)
new_nums.sort(reverse=True)
print(new_nums)


# 2.利用列表推导式, 完成以下需求
# a. 生成一个存放1-100中个位数为3的数据列表
# 方法1
list1 =[x for x in range(1,101) if x%10==3]
print(list1)
# 方法2(参考答案)
list1=[x for x in range(3,100,10)]
print(list1)


# b. 利用列表推到是将 列表中的整数提取出来
# type(数据)==类型名  -判断指定数据是否是指定类型
# isinstance(数据,类型) - 判断指定数据是否是指定类型
# 例如:[True, 17, "hello", "bye", 98, 34, 21] --- [17, 98, 34, 21]
# 法1
items=[True, 17, "hello", "bye", 98, 34, 21]
list2=[x for x in items if type(x) is int]
print(list2)#[17, 98, 34, 21]
# 法2
list3=[x for x in items if isinstance(x,int)]
print(list3)#[True, 17, 98, 34, 21]
# type(数据)与isinstance(数据,类型)区别是type判断是否是其类,isinstance 判断指定的类或者是其子类


# c.利用列表推导式 存放指定列表中字符串的长度
# 例如 ["good", "nice", "see you", "bye"] --- [4, 4, 7, 3]
item1=["good", "nice", "see you", "bye"]
list3=[len(x) for x in item1]
print(list3)


# 3.已知代码如下,请回答出各个print的结果 并说明原因
nums = [17, 39, 28, 51]
nums2 = nums
nums2.pop()
print(len(nums)) # 这个结果是什么   请描述原因
#结果为3,nums与nums2是同一地址
# 因为将nums赋值给nums2,也就是将nums的内存地址拿给了nums2,nums与nums2同时指向同一个列表,nums2.pop()将nums2所指的列表的最后一个元素拿出来,len(nums2)=3,那么len(nums)=3
numlist = [17, 22, 39, 58, [55, 43]]
nums3 = numlist.copy()
print(numlist is nums3) # 结果  原因是什么
#结果为False
#列表.copy(),因为复制原列表产生一个相同的新列表(数据相同,地址不同),数据1 is 数据2又判断的是两个数据的地址是否同,故numlist is nums3 的结果是False.
numlist[-1][0] = 99
print(nums3) # num3会不会发生变化
#num3会发生变化
#


# 4.自己用代码实现列表相关方法的功能:count、index、extend、clear
# 1.count功能
list1 = [90,80,90,78,98,5,67,55,23,90]
item=90
count1=0
for x in list1:
    if x==item:
        count1+=1
print(count1)

# 2.index
list1 = [90,89,90,76,56,67,89,12,90,55]
item =89
for index,x in enumerate(list1):
    if x==item:
        print('下标',index)
        break
else:
    print('没有该元素')

# extend
nums=[1,2,3,4]
seq='abc'
for x in seq:
    nums.append(x)
print(nums)

# clear
nums=[1,2,3]
for _ in range(len(nums)):
    nums.pop()
print(nums)


标签:nums,day6,list1,作业,列表,print,new,nums2
来源: https://blog.csdn.net/weixin_47124187/article/details/111247846

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有