鱼C论坛

 找回密码
 立即注册
查看: 1747|回复: 0

[技术交流] 《零基础入门学习python》第12讲课后练习

[复制链接]
发表于 2017-9-19 11:50:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 铁棍阿童木 于 2017-9-19 12:56 编辑

0.保证没上机实验。
print(new)的输出结果肯定还是原来的列表:1,2,3,4,5
原理就是:>>>old = [1,2,3,4,5]    第一步把列表贴了标签“old”;
                >>>new = old             第二步把列表贴了第二个标签“new”;
                >>>old = [6]               第三步把“old”标签又贴到了列表[6]上去了;
                >>>print(new)            第四步打印“new”;
                >>>1,2,3,4,5     因为列表[1,2,3,4,5]还是贴着标签“new”。

01.list1=[1,[1,2,["小甲鱼"]],3,5,8,13,18]
如何把“小甲鱼”修改为“小鱿鱼”?
最蠢的办法,没有之一“
>>>list1 =[1,[1,2,["小甲鱼"]],3,5,8,13,18]
>>>del list1[1]
>>>list1
>>>[1,3,5,8,13,18]
>>>list1.insert(1,[1,2,["小鱿鱼"]])
>>>list1
>>>[1,[1,2,["小鱿鱼"]],3,5,8,13,18]
就问你们怕不怕?!!!

02.使用sort()方法!

03.使用sort(reverse=True)方法!

05.>>>[i * i for i in range(10)]
     >>>[0,1,4,9,16,25,36,49,64,81]
     虽然觉得是这个,但还是在IDEL中验证了才发出来的。
另外:>>>list1 = [(x,y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
我的推导:
list1 = []
for x in range(10):
    for y in range(10):
        if x%2 == 0 and y%2 != 0:
            list1.append((x, y))
print(list1)(注:不加这个print语句,在IDEL中验证是不会有任何输出的。)
结果如图:

06.这个当时没想出来。看了小甲鱼的答案。
不过我还是喜欢这种形式:
list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3 = []
for slogan in list1:
    for brand in list2:
        if slogan[0] == brand[0]:
            list3.append((brand + ":" + slogan[2:]))
for each in list3:
    print(each)

但是,不得不承认,推导式列表更加简洁高效。一行代码在这里要用5行。
QQ截图20170919114908.jpg

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-6 09:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表