Python​ 重解零基础100题(10)

简介: Python​ 重解零基础100题(10)

第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())

同上!

目录
相关文章
|
存储 索引 Python
Python​ 重解零基础100题(10-2)
Python​ 重解零基础100题(10-2)
84 0
|
索引 Python
Python​ 重解零基础100题(9)
Python​ 重解零基础100题(9)
85 0
|
索引 Python
Python​ 重解零基础100题(8)
Python​ 重解零基础100题(8)
101 0
|
Python
Python​ 重解零基础100题(7)
Python​ 重解零基础100题(7)
138 0
|
Python
Python​ 重解零基础100题(6)
Python​ 重解零基础100题(6)
81 0
|
Python
Python​ 重解零基础100题(5)
Python​ 重解零基础100题(5)
81 0
|
Python
Python​ 重解零基础100题(4)
Python​ 重解零基础100题(4)
101 0
|
机器人 Python
Python​ 重解零基础100题(3)
Python​ 重解零基础100题(3)
131 0
|
JSON 数据安全/隐私保护 数据格式
Python​ 重解零基础100题(2)
Python​ 重解零基础100题(2)
289 0
|
Python 容器
Python​ 重解零基础100题(1)
Python​ 重解零基础100题(1)
152 0