Python - 设置w和w [0]之间的理解差异

时间:2016-03-24 21:21:05

标签: python set

我正在经历一个基本的理解。我有这个

words = set('zbcdedg')

first_letters = set()

然后我设置了一套理解

first_letters = {w for w in words}

然而,这个做同样的伎俩

first_letters = {w[0] for w in words}

2之间有什么区别?为什么使用后者而不是第一个,反之亦然?

1 个答案:

答案 0 :(得分:3)

w[0][0][0][0][0]...是单字符字符串。单字符串中的第一个字符恰好等于字符串。如果你愿意,你可以w,它仍然是相同的。使用最短,最易读的版本:在这种情况下只需CREATE TABLE #persons ( Number INT ,FirstName VARCHAR(10) ,Street VARCHAR(50) ) INSERT #persons VALUES (1, 'David', 'Long Avenue'), (2, 'Bob', 'Short Avenue'), (3, 'Peter', 'Middle Avenue'), (1, 'David', '5th Floor'), (3, 'Peter', '1st Floor') --This is the code you really want, I just needed the rest to test it and make sure it worked SELECT DISTINCT z.Number ,z.FirstName ,(SELECT p.Street FROM #persons p where p.Street LIKE '%Avenue%' AND p.Number = z.Number) ,(SELECT p.Street FROM #persons p where p.Street LIKE '%Floor%' AND p.Number = z.Number) FROM #persons z DROP TABLE #persons