小编mgi*_*son的帖子

在bash for循环中分离进程

我经常发现自己想要查看目录中的一堆图.我通常会这样做:

for PLT in *.png; do bash -c "display ${PLT} &" ; done
Run Code Online (Sandbox Code Playgroud)

以来

for PLT in *.png; do display ${PLT} & ; done  #doesn't work :-(
Run Code Online (Sandbox Code Playgroud)

对于这种事情,是否有更容易/更少丑陋/更好的习语?我也尝试在括号中包含命令,但这也不起作用(它只打开一个图)...

for PLT in *.png; do ( display ${PLT} ) ; done
Run Code Online (Sandbox Code Playgroud)

编辑

请注意,我在交互式终端中工作.如果我编写一个脚本并将第二个for循环分成多行,它就可以正常工作......

bash

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

用列表理解替换while循环

将循环表达为列表推导是很常见的:

mylist=[]
for i in range(30):
    mylist.append(i**2)
Run Code Online (Sandbox Code Playgroud)

这相当于:

mylist = [i**2 for i in range(30)]
Run Code Online (Sandbox Code Playgroud)

是否有任何一种机制可以通过while循环完成这种迭代?

mylist=[]
i=0
while i<30:
    mylist.append(i**2)
    i+=1
Run Code Online (Sandbox Code Playgroud)

当然,通过这个简单的例子,很容易转换为for循环,然后转换为列表理解,但是如果它不那么容易呢?

例如

mylist = [i**2 while i=0;i<30;i++ ]
Run Code Online (Sandbox Code Playgroud)

(当然上面的伪代码不是合法的python)(itertools想到这种事情,但我不太清楚这个模块.)

编辑

一个(非常简单)的例子,我认为一段时间的理解是有用的将是:

dt=0.05
t=0
mytimes=[]
while t<maxtime:
   mytimes.append(t)
   t+=dt
Run Code Online (Sandbox Code Playgroud)

这可以转化为:

dt=0.05
t=0
nsteps=maxtime/dt
mytimes=[]
for t in (i*dt for i in xrange(nsteps)):
    mytimes.append(t)
Run Code Online (Sandbox Code Playgroud)

可以写成(复合)列表理解:

nsteps=maxtime/dt
mytimes=[t for t in (i*dt for i in xrange(nsteps)] 
Run Code Online (Sandbox Code Playgroud)

但是,我认为,while循环是MUCH更容易阅读(而不是有索引错误)另外,如果你的对象(DT)支持"+"而不是"*"?如果maxtime循环的每次迭代以某种方式改变,可能会发生更复杂的例子......

python list-comprehension while-loop

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

fortran保存整数

我今天遇到的代码看起来有点像这样:

      subroutine foo()
      real blah
      integer bar,k,i,j,ll
      integer :: n_called=1
      save integer

      ...
      end
Run Code Online (Sandbox Code Playgroud)

看起来这里的意图可能是save n_called,但是即使是一个有效的语句来保存所有整数 - 或者它是否隐含地声明了一个名为integer并保存它的变量?

fortran save local-variables

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

使用 argparse 传递给 python 脚本的文件类型检查参数

有没有办法使用文件类型检查文件名参数argparse?如果我可以创建正确类型的容器对象,似乎可以通过 type 或choices 关键字来完成。

我期待传入的文件类型(例如,file.txt),argparse如果文件类型不正确(例如),我想给出其自动消息.txt。例如,argparse 可能会输出

usage: PROG --foo filename etc... error: argument filename must be of type *.txt.
Run Code Online (Sandbox Code Playgroud)

也许我们可以尝试检测文件名字符串不以“.txt”结尾,而不是检测错误的文件类型,但这需要复杂的容器对象。

python file-type argparse

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

Gnuplot x tic 标签重叠

我正在从具有以下格式的数据文件中绘制 gnuplot 图表:

01 value_1_1 value_2_1
02 value_1_1 value_2_1
...
01 value_1_n value_2_n
Run Code Online (Sandbox Code Playgroud)

使用该命令:

plot "action.dat" using 2:xtic(1) with boxes ls 1 title "First title",\
     "action.dat" using 3:xtic(1) with boxes ls 2 title "Second title";
Run Code Online (Sandbox Code Playgroud)

X tic 标签从第一列加载。当终端太小时,标签开始重叠。如果 x tic 标签与前一个标签重叠,如何隐藏它?或者,至少,我怎样才能只绘制第 n 个标签?

我试过做这样的事情

set xtics 10 rotate by -90
Run Code Online (Sandbox Code Playgroud)

但失败了。

charts gnuplot

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

Python元组列表

你能帮我转换一下Python列表:

[(1, 'a'), (2, 'b'), (2, 'c'), (3, 'd'), (3, 'e')]
Run Code Online (Sandbox Code Playgroud)

所以: (1, 'a')是索引0

(2, 'b'), (2, 'c') 都是索引1

(3, 'd'), (3, 'e') 都是索引2

简单地说,元素[0]相等的所有元组都具有相同的索引.

谢谢,

python tuples list

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

如何将两个列表转换为字典(一个列表是键,另一个列表是值)?

这是python中IDLE2中的代码和错误.

我需要以有序的方式将每个"data"元素作为键和值"otro"包含在内.那么"数据"和"otro"就是38个字符串的列表,"dik"就是字典.

>>> for i in range(len(otro)+1):
    dik[dato[i]] = otro[i]  

Traceback (most recent call last):
  File "<pyshell#206>", line 2, in <module>
    dik[dato[i]] = otro[i]
IndexError: list index out of range
>>> 
Run Code Online (Sandbox Code Playgroud)

这个问题是范围(0,38)输出 - >(0,1,2,3 ... 37)并且它都是凌乱的

python

2
推荐指数
2
解决办法
2019
查看次数

为什么控制台在打印python时有空间

我只是注意到一些奇怪的东西

在python中,如果我这样做

>>> k = 1
>>> j = 2
>>> print k,",",j
1 , 2   # prints this
Run Code Online (Sandbox Code Playgroud)

我希望它会是:

1,2
Run Code Online (Sandbox Code Playgroud)

为什么这两者之间有空间,而

>>> print str(k) + "," + str(j) 
1,2
Run Code Online (Sandbox Code Playgroud)

谢谢

python

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

从捕获的pcap python中列出的ip列表

我正在尝试对先前捕获的Pcap文件进行排序,我想构建一个ip源和目标列表,因此我可以对它们进行计算.

我试图使用搜索功能搜索pcap文件,但这有失败的IP地址,任何想法?

最终我希望代码使用下面的代码来实时嗅探,然后在ip地址的情况下构建一个列表.

newpkt = sniff(count = 100, prn=lambda x:x.sprintf("{IP:%IP.src% -> %IP.dst%\n}     {Raw:%Raw.load%\n}"))
Run Code Online (Sandbox Code Playgroud)

python ip scapy pcap

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

将"<>"附加到列表中的每个项目

我在Python 2.7中有这个代码我一直在努力,而且我被卡住了.我试图从去 ["bob","sally","jim"])'bob<>sally<>jim'

这是我到目前为止所拥有的.

def long_winded(my_str):
  result = []
  for i in my_str:
    result += i + "<>"
  return result

print long_winded(["sally","bob","jim"])
Run Code Online (Sandbox Code Playgroud)

python append

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