小编ban*_*ang的帖子

Python - 交叉字符串

尝试编写一个带有两个字符串的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'

有人可以帮忙吗?

我在其他论坛上发现了一些类似的问题,但解决方案似乎都涉及列表,而我希望我的输出是一个字符串

python string intersection

6
推荐指数
3
解决办法
1万
查看次数

如何排序字典?

问题是房间号和客人详细信息列表我直接从一个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)

python dictionary

5
推荐指数
1
解决办法
163
查看次数

在Python中绘制网格

我正在尝试为流网启动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)出现,因为我稍后需要从这一点绘制向量,指示流网的流向.

对不起,我知道我的术语不是很好.有谁知道如何做到这一点,以及如何让它适用于不正方形的网格?

python grid plot

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×3

dictionary ×1

grid ×1

intersection ×1

plot ×1

string ×1