Python:将range()与“.join()一起使用”

2024-05-18 12:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

x = WAIT100MS
subroutines = ["WAIT"+str(range(1,256))+"MS"]
if x in subroutines:
    print "success"
else:
    print "invalid"

我试图创建一段代码,如果WAITXMS1和{}之间,它将被接受,否则它将不被接受。 函数只生成一个列表,所以我想我可以使用

" ".join("WAIT"+str(range(1,256))+"MS")

x这样的字符串结束。 但是,将join()函数与range()一起使用似乎并不像我预期的那样工作,而是给了我一个像"WAIT[1,2,3,4,...]MS"一样正常的列表。我该怎么办?在


Tags: 函数in列表ifrangeelsemssuccess
3条回答

我会做一些类似的事情:

x = "WAIT100MS"
m = re.match(r"WAIT(\d+)MS$", x)
accept = m is not None and 1 <= int(m.group(1)) <= 255

我认为迭代所有可接受的数字(更不用说构建和存储所有WAIT<n>MS字符串)是不必要的浪费。在

我想你想要的是:

''.join("WAIT%dMS"%i for i in range(1,256))

我想有个更好的方法:

^{pr2}$

为什么你能切呢?在

x = 'WAIT100MS'
n = int(x[4:-2])
if 1 < n < 256:
    print 'success'
else:
    print 'invalid'

相关问题 更多 >

    热门问题