我有 3 个 python 类 A、B 和 C。A 包含 B 对象,B 包含 C 的对象。我想要的是当我打印一个类对象时,它应该以下面的格式打印。C类内部也可以有更多的嵌套。
A:
loc : XYZ
qual : ABC
b :
name : ABC
age : 30
c :
address : ABC
phn : 99009
Run Code Online (Sandbox Code Playgroud)
以下是可供参考的类。
class C(object):
def __init__(self):
self.address='ABC'
self.phn=99009
class B(object):
def __init__(self):
self.name='ABC'
self.age=30
self.c = C()
class A(object):
def __init__(self):
self.loc = 'XYZ'
self.qual = 'ABC'
self.b = B()
Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本来将文本文件解析为自己的电子表格,为此我需要通读它们。问题是找出何时停止。Java在阅读时附加了一个方法调用hasNext()
,或者hasNextLine()
我想知道Python中是否有类似的方法?由于某种原因我在任何地方都找不到这个。
前任:
open(f) as file:
file.readline()
nextLine = true
while nextLine:
file.readline()
Do stuff
if not file.hasNextLine():
nextLine = false
Run Code Online (Sandbox Code Playgroud) 我只需要接受输入作为数值0 to 100
,integers
并且floats
包含最大 two
小数位,并编写正则表达式来检查这些条件.
例如,我希望它接受以下值:
0(min), 0.1, 1, 11, 11.1, 11.11, 100(max).
Run Code Online (Sandbox Code Playgroud)
但不是:
-1, 100.1, 111, 1+1, .1, etc.
Run Code Online (Sandbox Code Playgroud)
到目前为止,我提出了^\d?\d+(\.\d\d?)?$
它,但它有一堆问题.
刚才在提交本,我看到这个链接中类似的问题侧边栏有什么似乎是解决("^((?:|0|[1-9]\d?|100)(?:\.\d{1,2})?)$"
),但它也接受100.01
来100.99
.除此之外,这是一个非常小的问题,它应该工作.
但是有人知道如何修补那个特定的位吗?
list
在Python中考虑以下内容.
c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
Run Code Online (Sandbox Code Playgroud)
我想在n
哪里创建字符串n = len(c)/6
.因此,对于此示例,预期输出将是:
str1=1|2|3|4|5|6
str2=7|8|9|10|11|12
str3=13|14|15|16|17|18
Run Code Online (Sandbox Code Playgroud)
我如何使用循环?请注意,长度c
始终是倍数6
.
我想输出:
[2, [23]]
Run Code Online (Sandbox Code Playgroud)
但是,当我跑:
console.log([2,[23]]);
Run Code Online (Sandbox Code Playgroud)
我明白了:
(2) [1, Array(1)]
Run Code Online (Sandbox Code Playgroud)
我试过使用这种toString()
方法,但我得到了'2,23'
.
我对以下代码的行为感到困惑:
data = [0,1,2,3,4,5]
class test():
def __init__(self,data):
self.data=data
self.data2=data
def main(self):
del self.data2[3]
test_var = test(data)
test_var.main()
print(test_var.data)
print(test_var.data2)
Run Code Online (Sandbox Code Playgroud)
我认为应该出来的是:
[0,1,2,3,4,5]
[0,1,2,4,5]
Run Code Online (Sandbox Code Playgroud)
我得到的是这个:
[0,1,2,4,5]
[0,1,2,4,5]
Run Code Online (Sandbox Code Playgroud)
为什么第二个列表中的元素在未直接更改时会被删除?或者python是否以正常情况发生的方式处理属性?
那么我应该如何改变我得到我想要的代码呢?
我想对包含数字(比如l1)的python列表进行排序,并使用此列表的索引(排序顺序)重新排列两个不同列表(l2和l3)的元素.我想用标准的python库(不是pandas)实现这一点.我正在使用python 2.7.
例如,让我们说:
l1 = [2,4,5,1]
l2 = ['aa', 'bb', 'cc', 'dd']
l3= ['a_a', 'b_b', 'c_c', 'd_d']
Run Code Online (Sandbox Code Playgroud)
在这里,我想按降序对l1进行排序l1_sorted = [5,4,2,1]
.
其他列表(l2和l3)将按照l1(l1_sorted)中的排序索引重新排列.在上面的例子中,我们应该:
l2_sorted = ['cc', 'bb', 'aa', 'dd']
l3_sorted = ['c_c', 'b_b', 'a_a', 'd_d']
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用Python(l1_sorted = sorted(l1, reverse=True)
)的排序函数.但那只能给我l1_sorted.
如何实现我想要的全部功能(即l2_sorted和l3_sorted)?
我正在用Python从头开始编写计算机视觉库,以与rpi
相机配合使用。目前,我已经实现了转换为greyscale
以及其他一些基本img
操作,它们在我的上都运行得相对较快model B
rpi3
。
但是,我的使用sobel
运算符的边缘检测功能(维基百科描述)比其他功能慢很多,尽管它确实起作用。这里是:
def sobel(img):
xKernel = np.array([[-1,0,1],[-2,0,2],[-1,0,1]])
yKernel = np.array([[-1,-2,-1],[0,0,0],[1,2,1]])
sobelled = np.zeros((img.shape[0]-2, img.shape[1]-2, 3), dtype="uint8")
for y in range(1, img.shape[0]-1):
for x in range(1, img.shape[1]-1):
gx = np.sum(np.multiply(img[y-1:y+2, x-1:x+2], xKernel))
gy = np.sum(np.multiply(img[y-1:y+2, x-1:x+2], yKernel))
g = abs(gx) + abs(gy) #math.sqrt(gx ** 2 + gy ** 2) (Slower)
g = g if g > 0 and g < 255 else (0 if g …
Run Code Online (Sandbox Code Playgroud) 我有一个清单:
input = ['a','b','c','a','b','d','e','d','g','g']
Run Code Online (Sandbox Code Playgroud)
我想要列表中除重复项之外的所有元素的索引。
output = [0,1,2,5,6,8]
Run Code Online (Sandbox Code Playgroud) python ×8
list ×3
python-3.x ×2
algorithm ×1
del ×1
javascript ×1
loops ×1
numpy ×1
object ×1
performance ×1
pretty-print ×1
python-2.7 ×1
regex ×1
search ×1
sobel ×1