尝试编写一个带有两个字符串的for函数,并返回按它们在第一个字符串中出现的顺序相交的字符.
这是我试过的:
def strIntersection(str1, str2):
for i in str1:
str3 = ''
str3 = str3.join(i for i in str1 if i in str2 not in str3)
return str3
str1 = 'asdfasdfasfd'
str2 = 'qazwsxedc'
strIntersection(str1,str2)
=> 'asdasdasd'
Run Code Online (Sandbox Code Playgroud)
但是我只希望交叉字符出现一次并按照第一个字符串的顺序即出现.'ASD'
有人可以帮忙吗?
我在其他论坛上发现了一些类似的问题,但解决方案似乎都涉及列表,而我希望我的输出是一个字符串
问题是房间号和客人详细信息列表我直接从一个txt文件中删除,该文件需要放入字典中,房间号作为键,细节作为值.
客人名单实际上是一个列表,每个项目代表房间号,客人姓名,到达,出发日期.没有任何东西的房间都是空的.
nlist = [['101'], ['102'], ['103'],
['201', ' John Cleese', ' 5/5/12', ' 5/7/12'], ['202'],
['203', ' Eric Idle', ' 7/5/12', ' 8/7/12'], ['301'], ['302'], ['303']]
Run Code Online (Sandbox Code Playgroud)
基本上,必须把它变成字典.这是我试过的:
guests = {}
for i in nlist:
if len(i) == 1:
key = i[0]
guests[key] = None
else:
key = i[0]
val = i[1],i[2],i[3]
guests[key] = val
Run Code Online (Sandbox Code Playgroud)
这给了我:
guests = {'201': (' John Cleese', ' 5/5/12', ' 5/7/12'),
'203': (' Eric Idle', ' 7/5/12', ' 8/7/12'), '202': None, '301': None,
'302': None, …Run Code Online (Sandbox Code Playgroud) 我正在尝试为流网启动2D等高线图,但我无法正确显示初始网格.
给定列数和行数,如何编写一个绘制网格的函数,以便显示给定范围内的所有点?
我尝试通过这样做来绘制4列和3行点:
r = 3
c = 4
x = [i for i in range(c)]
y = [i for i in range(r)]
plot(x,y,'ro')
grid()
show()
Run Code Online (Sandbox Code Playgroud)
并得到此错误:
'ValueError: x and y must have same first dimension'
Run Code Online (Sandbox Code Playgroud)
所以我尝试在4x4网格上进行测试并得到了这个并且我接近我想要的,但它只绘制点(0,0),(1,1),(2,2)和(3,3)
但是,我也想要点(0,0),(1,0),(2,0),(3,0),(1,0),(1,1)......(3,2) ,(3,3)出现,因为我稍后需要从这一点绘制向量,指示流网的流向.
对不起,我知道我的术语不是很好.有谁知道如何做到这一点,以及如何让它适用于不正方形的网格?