第91题
问题:利用列表理解,请编写一个程序,去掉[12,24,35,70,88,120,155]中的第0,第4,第5个数字后,将列表打印出来。
提示:使用列表理解从列表中删除一组元素。使用enumerate()来获取(index, value)元组。
li = [12,24,35,70,88,120,155] li = [x for (i,x) in enumerate(li) if i not in (0,4,5)] print(li)
我的答案:
>>> li = [12,24,35,70,88,120,155] >>> for i in (5,4,0): del li[i] >>> li [24, 35, 70, 155] >>> # 列表删除元素,一定要从序号大的开始
第92题
问题:通过使用列表理解,请编写一个程序,在[12,24,35,24,88,120,155]中删除值24后打印列表。
提示:使用列表的remove方法删除一个值。
li = [12,24,35,24,88,120,155] li = [x for x in li if x!=24] print(li)
我的答案:
1. >>> li = [12,24,35,24,88,120,155] 2. >>> while 24 in li: 3. li.remove(24) 4. 5. 6. >>> li 7. [12, 35, 88, 120, 155] 8. >>>
第93题
问题:对于两个已知链表[1,3,6,78,35,55]和[12,24,35,24,88,120,155],编写一个程序来生成一个元素为上述两个链表交集的链表。
提示:使用set()和"&="进行集合相交操作。
1. set1=set([1,3,6,78,35,55]) 2. set2=set([12,24,35,24,88,120,155]) 3. set1 &= set2 4. li=list(set1) 5. print(li)
我的答案:
>>> A,B=[1,3,6,78,35,55],[12,24,35,24,88,120,155] >>> A,B=set(A),set(B) >>> A & B {35} >>> >>> # 另外三种集合运算:交集、差集、异或集 >>> A | B {1, 3, 35, 6, 88, 12, 78, 55, 24, 155, 120} >>> A - B {1, 3, 6, 78, 55} >>> B - A {155, 12, 24, 88, 120} >>> A ^ B {1, 3, 6, 12, 78, 24, 88, 155, 55, 120} >>> A | B == B | A True >>> A - B == B - A False >>> A ^ B == B ^ A True >>> >>> # <=、< 用于判断是否为子集、真子集 >>> A & B < A True >>>
或者:
1. >>> A,B=[1,3,6,78,35,55],[12,24,35,24,88,120,155] 2. >>> {i for i in A if i in B} 3. {35} 4. >>>
第94题
问题:对于给定的列表[12,24,35,24,88,120,155,88,120,155],编写一个程序来打印这个列表-删除所有重复的值与原始顺序保留。
提示:使用set()来存储一些没有重复的值。
def removeDuplicate( li ): newli=[] seen = set() for item in li: if item not in seen: seen.add( item ) newli.append(item) return newli li=[12,24,35,24,88,120,155,88,120,155] print(removeDuplicate(li))
我的答案:
>>> L = [12,24,35,24,88,120,155,88,120,155] >>> D = [i for i in li if li.count(i)>1] >>> C = set(L) - set(D) >>> C {35, 12} >>> # 列表转集合时会改变元素顺序,以下从原列表中恢复原顺序 >>> result = [i for i in L if i in C] >>> result [12, 35] >>>
第95题
问题:定义一个类Person和它的两个子类:Male和Female。所有的类都有一个方法“getGender”,它可以打印“Male”为男性类,“Female”为女性类。
提示:使用子类(Parentclass)来定义子类。
class Person(object): def getGender( self ): return "Unknown" class Male( Person ): def getGender( self ): return "Male" class Female( Person ): def getGender( self ): return "Female" aMale = Male() aFemale= Female() print(aMale.getGender()) print(aFemale.getGender())
同上!