单层列表切片 问题求助
代码如下:s =
s[:] = "FishC"
print(s)
['F', 'i', 's', 'h', 'C']
a= [ ]
a = "FishC"
a
'FishC'
s == a
Flase
为啥会不相等呢?
i = 0
for iin range(len(s)):
if a == s :
print('Ture')
结果全为Ture。
为啥 s != a? 本帖最后由 jackz007 于 2022-9-16 21:39 编辑
s = ['F', 'i', 's', 'h', 'C']
a = 'FishC'
明摆着的事情,难道你认为 s 会和 a 相等???
s 是列表,a 是字符串,二者不相等是因为他们的类型不同,但是,他们又同属于序列类型,都可以被切片,切片的类型又都是单个字符,而且,二者两两对应相等,所以,尽管 s != a,但是,并不妨碍它们的切片却是完全相等的。 代码
s =
s[:] = "FishC"
a= [ ]
a = "FishC"
print(type(a))
print(type(s))
运行结果
<class 'str'>
<class 'list'>
他们一个是列表一个是字符串怎么比?这就好像10平方米和10立方米来比较,单位都不同,怎么比? 一个是列表一个是字符串,肯定是不相等的,虽然不相等但是他们都可迭代,每个组成元素都相等。就好比一个馒头一个花卷,一看就不是一个东西,但是都是相同的面粉组成。 一开始s和a就不是相同的,一个是列表(list) ['F', 'i', 's', 'h', 'C'] 一个是字符串(str) FishC ,就像体积不能跟长度对比一样
而后面全部true那是因为单独拿出元素对比,用type对比一下可以看出来
print(type(s))
print(type(a))
输出是
<class 'str'>
<class 'str'>
https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.igo8.cn%2Ftao%2Fphoto%2FERM6PhhOe4VzaVYOIylFJSoQBCogRScpFEgnfUR1f0hReX9ScndASBoMWREnLyEOe4VzAFodBAwpJDdaPiUhPywACBweGDhvb1p9d09Qf3dddX9XDT4p.jpg&refer=http%3A%2F%2Fwww.igo8.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1665935898&t=3159545f4133c7c0eba9677de4eb5a58
https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fp.yiyiso.com%2Fp%2F2017%2F8%2F403e58678ff71363.jpg&refer=http%3A%2F%2Fp.yiyiso.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1665935899&t=318690f0575db1bb05a391562944cef8
就像薯片一样,桶装的袋装的不一样,单里面薯片一样的,但你总不能用袋装的薯片买桶装的薯片 {:10_256:}
页:
[1]