hhss0obc 发表于 2021-1-15 15:37:07

列表提取傻傻分不清

各位大神们,我是python初学者,有个我无法区分的问题。
之前学列表的时候,提取元素直接可以打印下标或者切分。
但是在学字符串的时候有一题:
str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
拆出'www.fishc.com'。
我用了这个方法:
str1.split('/')
str2 = str1
应该是得到str1列表的第3个下标的元素,但打出来是' '。。。不理解怎么回事
有哪位大神有空看到的话能教教我吗?

qiuyouzhi 发表于 2021-1-15 15:46:11

记住:所有的字符串方法,都不会改变字符串本身!
你应该把str1.split的结果存到另一个变量里面:
str3 = str1.split('/')
print(str3))

hhss0obc 发表于 2021-1-15 15:58:26

qiuyouzhi 发表于 2021-1-15 15:46
记住:所有的字符串方法,都不会改变字符串本身!
你应该把str1.split的结果存到另一个变量里面:

谢谢大佬,类似的问题在上一节课也遇到了。
课后作业12讲里面第6题,有个排序的,也好像是可以直接提取字符,不是提取元素。
答案如下:
>>> list3 = for slogan in list1 for name in list2 if slogan == name]

Daniel_Zhang 发表于 2021-1-15 16:00:24



如果直接说的话,肯定不太好理解,那就插图{:10_256:}

type()函数可以看出 str1.split('/') 的结果是个 list,这貌似已经离答案很近了{:10_297:}

但是,问题来了,当我们真正切割了str1后,再次查看str1,惊奇的发现str1竟然没有发生变化{:10_257:}

恍然大悟,需要将切割后得到的内容赋值给一个新的变量,即 list1{:10_278:}

此时调用 list1,发现已经获得了切割后的结果{:10_332:}

最后重新赋值给一个新的变量 result = list1,就能得到我们需要的结果了{:10_275:}

jackz007 发表于 2021-1-15 16:02:29

print(str1 . split('/'))

hhss0obc 发表于 2021-1-15 16:18:28

Daniel_Zhang 发表于 2021-1-15 16:00
如果直接说的话,肯定不太好理解,那就插图

type()函数可以看出 str1.split('/') 的结果 ...

这个答案很精彩,但是我已经给过最佳答案了,不好意思

Daniel_Zhang 发表于 2021-1-15 16:26:30

hhss0obc 发表于 2021-1-15 16:18
这个答案很精彩,但是我已经给过最佳答案了,不好意思

没事,可以帮助后来的人{:10_254:}

也算给自己一个练习的机会{:10_297:}
页: [1]
查看完整版本: 列表提取傻傻分不清