小编Pyd*_*man的帖子

Regex:如何匹配RFC1918私有IPV4地址范围中的IP地址(在Python中)?

RFC1918将私有IPv4地址定义为属于以下任何范围内的私有IPv4地址:

10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Run Code Online (Sandbox Code Playgroud)

为了我的分析,我将127.0.0.1添加到此列表中.我知道有经过试验和测试的正则表达式来匹配任何IPv4地址,但是只有当地址属于上述范围之一或127.0.0.1时,我才能将其中一个缩小到匹配?将使用Python.

非常感谢

python regex

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

"消耗整个可迭代的函数不会终止"?

David Beazley关于发电机的讨论中,他指出,作为一个警告:

消耗整个可迭代的函数不会终止(min,max,sum,set等)

这是什么意思?

gen = (x*2 for x in [1,2,3,4,5])
Run Code Online (Sandbox Code Playgroud)

sum(gen) 终止就好了.

python yield generator

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

C:为什么指针和指针有不同的值?

如果我在OS X上运行以下命令:

int main (void)
{
    int* n; // initialise(declare) pointer
    *n = 20; // the value in address pointed to by n is 20
    printf("n: %i, n&: %i\n", n, &n);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

n:1592302 512,n&:1592302 480

为什么不同的价值观?

c pointers memory-address

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

Python:如何在不获取IndexError的情况下检查不存在的列表元素的值?

我正在使用Python的单行条件:

x = 'foo' if myList[2] is not None else 'bar'
Run Code Online (Sandbox Code Playgroud)

分配给x列表的某个索引处的项目的值 - 当且仅当它存在时 - 如果不存在则分配给不同的值.

这是我的挑战:myList最多可以有三个元素,但不会总是有三个元素.因此,如果索引不存在(即,如果有问题的索引比列表的大小大1+),我显然会IndexError list out of range在内联条件可以分配变量之前获得:

In [145]: myList = [1,2]

In [146]: x = 'foo' if myList[2] is not None else 'bar'
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-146-29708b8c471e> in <module>()
----> 1 x = 'foo' if myList[2] is not None else 'bar'

IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

预先检查列表的长度并不是一个选项,因为我不知道我感兴趣的是哪个值丢失(即myList可能缺少三个可能值中的任何一个或全部.知道它只包含一个或两个,或三个元素没有帮助).

更新:我无法根据列表的长度分配的原因如下.列表的最大大小为3,顺序很重要.填充的值将是对API的三次单独调用的结果.如果对API的所有调用都成功,我会得到一个完整列表,一切都很好.然而,如果只有两个返回一个值,那么列表只包含两个项目,但 …

python indexing if-statement list indexoutofboundsexception

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

如何在Python中按每个索引的整数值来排序元组列表?

给出一个元组列表,例如

[('a','b','4'),('c','d','9'),('e','f','2')]
Run Code Online (Sandbox Code Playgroud)

每个元组的第三个元素将始终是整数的字符串值.

我想把每个元组写成一行csv使用csv.writerow().在我这样做之前,我想重新排序元组(理想情况下,通过覆盖现有列表或创建一个新元组),使得它们按照每个元素的第三个元素的整数值的降序编写.

c,d,9
a,b,4
e,f,2
Run Code Online (Sandbox Code Playgroud)

我试图在列表理解中想象某种多样的if/else组合,但肯定会有更简单的方法吗?

python tuples list-comprehension list python-2.7

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

在Python中处理非ASCII字符的可靠方法?

我有一个电子表格列,其标题包含非 ASCII 字符,因此:

\n\n
\'\xc3\xaf\xc2\xbb\xc2\xbfCampaign\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我将此字符串放入解释器中,我会得到:

\n\n
\'\\xc3\\xaf\\xc2\\xbb\\xc2\\xbfCampaign\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

rows该字符串是a 中的键之一csv.DictReader()

\n\n

value当我尝试使用此键填充新字典时:

\n\n
spends[\'\xc3\xaf\xc2\xbb\xc2\xbfCampaign\'] = 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到:

\n\n
Key Error: \'\\xc3\\xaf\\xc2\\xbb\\xc2\\xbfCampaign\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我打印行键的值,我可以看到它是\'\\xef\\xbb\\xbfCampaign\'

\n\n

显然,我可以更新我的程序来访问这个密钥:

\n\n
spends[\'\\xef\\xbb\\xbfCampaign\']\n
Run Code Online (Sandbox Code Playgroud)\n\n

但在 Python 中是否有“更好”的方法来做到这一点?事实上,如果该键的值每次更改为包含其他非 ASCII 字符,那么处理可能出现的任何非 ASCII 字符的包罗万象的方法是什么?

\n

python unicode character-encoding non-ascii-characters python-2.7

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

除非我添加逗号,为什么长度为1的元组的元组实际上不是元组?

鉴于元组T的元组:

(('a', 'b'))
Run Code Online (Sandbox Code Playgroud)

和一个单独的元组t1:

('a','b')
Run Code Online (Sandbox Code Playgroud)

为什么:

t1 in T
Run Code Online (Sandbox Code Playgroud)

返回False?

更新:来自Ipython:

In [22]: T = (('a','b'))

In [23]: t1 = ('a','b')

In [24]: t1 in T
Out[24]: False
Run Code Online (Sandbox Code Playgroud)

然后如何检查元组是否在另一个元组中?

python indexing tuples elements python-2.7

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

获得['76 125 94 95 122 96 126 123 124 87'中的最高数字?

给定单个元素,list例如:

['76 125 94 95 122 96 126 123 124 87']
Run Code Online (Sandbox Code Playgroud)

我希望int从字符串中获取最高数字(作为一个).而不是提取列表中的第0个元素,然后拆分成一个新列表,然后将这个新列表的每个元素转换为整数,然后最终得到max(),是否有一个(或两个)线程可以做同样的事情?

python string list

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

Python dict:如何将键映射到值,其中键是一个范围?

我有一个值列表:

[0,1.51,2.01,2.51,3.01,5.01,6.01,7.01,8.01,9.01,10.01]

第二个值列表:

[.15,.22,.3,.37,.4,.5,.6,.7,.8,.9,1]

我的程序的粗略逻辑是,如果某个变量的值落在第一个列表中的两个值之间,则将另一个变量的值设置为第二个列表中的相应项,即

if 0 < x < 1.51:
    y = 0.15
elif 1.51 < x < 2.01:
    y = .22
and so on
Run Code Online (Sandbox Code Playgroud)

显然我可以扩展if/elif/else流程以涵盖每个案例,但(i)这不是很好,(ii)它不可持续(iii)我希望能够将此应用于任何两个列表,而不是要求知道其中包含的任何值.

在Python中实现这一目标的最佳方法是什么?

非常感谢

python dictionary list map range

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

C#多维数组迭代

我是C#的新手并且正在研究数组.

鉴于:

int[][] myJagArray = new int[5][];
Run Code Online (Sandbox Code Playgroud)

为什么以下打印j(System.Int32 [])的类型,而不是每个j的内容?

foreach (int[] j in myJagArray)
{
    Console.WriteLine("j : {0}",j);
}
Run Code Online (Sandbox Code Playgroud)

c# arrays iteration multidimensional-array

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

为什么Python dict理解忽略了dict中的第一个元素?

我想转换成floatsstring值(应该已经被表示为浮动原本)在以下字典:

{'a': '1.3', 'b': '4'}
Run Code Online (Sandbox Code Playgroud)

如果我尝试词典理解:

{k:float(v) for v in d.values()}
Run Code Online (Sandbox Code Playgroud)

我最终得到了dict中的第二项:

In [191]: {k:float(v) for v in d.values()}
Out[191]: {'b': 4.0}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

python dictionary key-value python-2.7 dictionary-comprehension

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

在Python中切换打印/关闭打印语句的有效方法?

我的程序中有10或15个非常有用的调试print语句(在不同的函数和中main).

我不会总是想要或需要日志文件.我有一个配置文件,我可以在其中添加一个参数来打开或关闭打开打印语句.但是,我必须在每个print语句上面添加一个保护检查,以查看此参数的值.

有哪些更好的方法?

python debugging python-2.7

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

如何将list.index()(或类似)应用于多个列表以查找对的位置?

给出两个列表,例如

x = ['a','b','c','d', 'e']

y = [1 ,2 ,3 ,4, 2]
Run Code Online (Sandbox Code Playgroud)

如果我想获取one列中给定项的位置,我可以简单地使用index()

x.index('b')
Run Code Online (Sandbox Code Playgroud)

如果我想获得一定的位置,什么(作为list,tuple或者dict,两者效果最好)了两行中的项目(在每一列中的相同位置)?例如"找到我对的位置('b',2)"

List y可能包含重复的值,因此我无法.index()对每个列表的两次调用的结果进行逻辑AND运算.

我实际处理的是openpyxl工作簿的列,但上面的例子更简洁地说明了.

python indexing list python-2.7

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