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.
非常感谢
在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) 终止就好了.
如果我在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
为什么不同的价值观?
我正在使用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的所有调用都成功,我会得到一个完整列表,一切都很好.然而,如果只有两个返回一个值,那么列表只包含两个项目,但 …
给出一个元组列表,例如
[('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组合,但肯定会有更简单的方法吗?
我有一个电子表格列,其标题包含非 ASCII 字符,因此:
\n\n\'\xc3\xaf\xc2\xbb\xc2\xbfCampaign\'\nRun Code Online (Sandbox Code Playgroud)\n\n如果我将此字符串放入解释器中,我会得到:
\n\n\'\\xc3\\xaf\\xc2\\xbb\\xc2\\xbfCampaign\'\nRun Code Online (Sandbox Code Playgroud)\n\nrows该字符串是a 中的键之一csv.DictReader()
value当我尝试使用此键填充新字典时:
spends[\'\xc3\xaf\xc2\xbb\xc2\xbfCampaign\'] = 2\nRun Code Online (Sandbox Code Playgroud)\n\n我得到:
\n\nKey Error: \'\\xc3\\xaf\\xc2\\xbb\\xc2\\xbfCampaign\'\nRun Code Online (Sandbox Code Playgroud)\n\n如果我打印行键的值,我可以看到它是\'\\xef\\xbb\\xbfCampaign\'
显然,我可以更新我的程序来访问这个密钥:
\n\nspends[\'\\xef\\xbb\\xbfCampaign\']\nRun Code Online (Sandbox Code Playgroud)\n\n但在 Python 中是否有“更好”的方法来做到这一点?事实上,如果该键的值每次更改为包含其他非 ASCII 字符,那么处理可能出现的任何非 ASCII 字符的包罗万象的方法是什么?
\npython unicode character-encoding non-ascii-characters python-2.7
鉴于元组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?
In [22]: T = (('a','b'))
In [23]: t1 = ('a','b')
In [24]: t1 in T
Out[24]: False
Run Code Online (Sandbox Code Playgroud)
然后如何检查元组是否在另一个元组中?
给定单个元素,list例如:
['76 125 94 95 122 96 126 123 124 87']
Run Code Online (Sandbox Code Playgroud)
我希望int从字符串中获取最高数字(作为一个).而不是提取列表中的第0个元素,然后拆分成一个新列表,然后将这个新列表的每个元素转换为整数,然后最终得到max(),是否有一个(或两个)线程可以做同样的事情?
我有一个值列表:
[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中实现这一目标的最佳方法是什么?
非常感谢
我是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) 我想转换成floats的string值(应该已经被表示为浮动原本)在以下字典:
{'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
我的程序中有10或15个非常有用的调试print语句(在不同的函数和中main).
我不会总是想要或需要日志文件.我有一个配置文件,我可以在其中添加一个参数来打开或关闭打开打印语句.但是,我必须在每个print语句上面添加一个保护检查,以查看此参数的值.
有哪些更好的方法?
给出两个列表,例如
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工作簿的列,但上面的例子更简洁地说明了.