标签: enumerate

在ASP.NET网页中枚举字典

我有一个ASP.NET(C#)网页,我想在代码渲染块中枚举一个字典:

<% foreach (Dictionary<string, string> record in parsedData) { %>
     <div>...Some HTML Code...</div>
<% } %>
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误:

编译器错误消息:CS0246:找不到类型或命名空间名称"Dictionary"(您是否缺少using指令或程序集引用?)

如何将System.Collections.Generic导入页面本身?这是我的页面指令:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyCSharpClass.aspx.cs" Inherits="_MyCSharpClass" %>
Run Code Online (Sandbox Code Playgroud)

c# asp.net import enumerate

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

使用SetupDiGetClassDevs在Delphi中进行串行端口枚举

我正在尝试枚举COM端口的"友好名称".随着USB串行设备在运行时连接和断开,端口可能会动态变化.

基于此问题中描述的可能方法,我尝试使用SetupDiGetClassDevs方法.

我找到了这个示例代码,但它是为旧版本的setupapi单元编写的(homepages.borland.com的原始链接当然不起作用).

我尝试使用当前JVCL(JVCL340CompleteJCL221-Build3845)中的setupapi单元,但它似乎与Delphi 7不兼容.我收到编译器错误:

if SetupDiGetDeviceRegistryProperty(DevInfoHandle,DeviceInfoData,
    RegProperty,
    @PropertyRegDataType,
    @S1[1],RequiredSize,@RequiredSize) then begin
Run Code Online (Sandbox Code Playgroud)

在函数SetupDiGetDeviceRegistryProperty的调用中,我在参数@PropertyRegDataType@RequiredSize上得到错误"实际和形式参数的类型必须相同" .

Delphi3000站点说该代码是在2004年编写的,适用于Delphi 7,所以我不知道为什么它现在不适用于Delphi 7,除非setupapi已经改变.是否有人熟悉setupapi可能导致这些问题的更改?

我正在测试一个简单的控制台程序.uses语句是"windows,sysutils,classes,setupAPI,Registry;"

主要计划是:

  begin
  ComPortStringList := SetupEnumAvailableComPorts;
  for Index := 0 to ComPortStringList.Count - 1 do
      writeln(ComPortStringList[Index]);
  end;
  end.
Run Code Online (Sandbox Code Playgroud)

delphi serial-port enumerate

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

在Python中结合enumerate + itertools.izip

我想在Python中迭代+枚举两个列表.以下代码看起来很丑陋.有没有更好的解决方案?

for id, elements in enumerate(itertools.izip(as, bs)):
  a = elements[0]
  b = elements[1]
  # do something with id, a and b
Run Code Online (Sandbox Code Playgroud)

谢谢.

python enumerate python-itertools

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

可变长度'收益率'?

我希望能够yield使用可变数量的项目,这些项目将允许生成类似于以下内容的生成器函数:

x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]

def multi_enumerate(*iterables):
    n = 0
    iterators = map(iter, iterables)
    while iterators:
        yield n, *tuple(map(next, iterators))  # invalid syntax
        n += 1

for i,a,b,c in multi_enumerate(x, y, z):
    print i,a,b,c
Run Code Online (Sandbox Code Playgroud)

有人知道某种方法吗?我知道我可以产生一个元组,但这需要在接收端明确地解压缩它,例如:a,b,c = t[0], t[1], t[2].

最终解决方案:

FWIW,这是我最终使用的,基于John Kugelman的出色答案:

from itertools import izip

def multi_enumerate(*iterables, **kwds):
    start = kwds.get('start')
    if start is None:
        if kwds: raise TypeError(
            "multi_enumerate() accepts only the …
Run Code Online (Sandbox Code Playgroud)

python generator enumerate

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

为什么list和tuple会改变枚举的输出?

我对以下行为感到惊讶:

>>> a=['a','b','c','d','e','f','g']
>>> en=enumerate(a)
>>> list(en)
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g')]
>>> list(en)
[]
>>> # en changed?   let's try that again!
>>> a=['a','b','c','d','e','f','g']
>>> en=enumerate(a)
>>> tuple(en)
((0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'))
>>> tuple(en)
()
>>> # en changes again?
Run Code Online (Sandbox Code Playgroud)

我假设list()只是从en中的数据构建一个列表,并且不会以任何方式改变它.同样的tuple().但他们都以"深刻"的方式影响恩.我误解一些关于list()tuple(),或我误解enumerate()?谢谢.

python tuples list enumerate

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

列表与列表列表的第一个元素之间的交集

我有两个清单:

wordlist =  ['A', 'Aani', 'Aaron', 'Aaronic',
             'Aaronical', 'Aaronite', 'Aaronitic',
             'Aaru', 'Ab', 'Ababdeh']
Run Code Online (Sandbox Code Playgroud)

wordlist_compound = [['A','0'], ['Aaronic','1'], ['Key','2'],
                     ['Aaronical','3'], ['Aaronite','4'], ['Yes','5']]
Run Code Online (Sandbox Code Playgroud)

我想取两个单词的交集,并在第三个列表中创建一个包含单词,数字组合编号的列表wordlist_final,以便wordlist_final看起来像:

[['A','0'], ['Aaronic','1'], ['Aaronical','3'], ['Aaronite','4']]
Run Code Online (Sandbox Code Playgroud)

我目前的代码如下:

wordlist_final = []
for index, word in enumerate(wordlist):
    for word_comp in wordlist_compound:
        if word[index] == wordlist_compound[index][0]:
            wordlist_final.append(wordlist_compound[index])
Run Code Online (Sandbox Code Playgroud)

但我得到一个"字符串索引超出范围错误"

python intersection list enumerate

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

什么样的对象在python中枚举返回?

我正在阅读python cookbook,它提到enumerate()返回一个迭代器,产生表单的所有对(两个-itm元组)(index,item)

我可以使用d = dict(枚举(L))来制作一个词典.

根据我的理解,我认为enumerate()返回一个元组.并且dict()可以将元组变成dict.

所以我尝试过:

dict((1,2))
Run Code Online (Sandbox Code Playgroud)

弹出TypeError.

所以我想知道枚举什么对象实际上返回哪个dict()可以使它成为一个字典?

python dictionary enumeration enumerate

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

在groovy中枚举列表

我试图在groovy中使用类似python enumerate()方法的东西.
例如:

list = ['book','pencil','laptop','coffee']
for product, line in enumerate(list, 1):
    print "Product %s in the %sth line" % (product, line)
Run Code Online (Sandbox Code Playgroud)

输出应该是:
第1行中的产品书第2行中的
产品铅笔
第3行中的产品笔记本第4行中的
产品咖啡

有没有办法在groovy中执行枚举方法?
问候!

groovy enumerate

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

Python-遍历没有最后一个元素的列表

我有一个元组列表,想要创建一个新列表。用新列表的最后一个元素(第一个元素为0)和旧列表的下一个元组的第二个元素来计算新列表的元素。

为了更好地理解:

list_of_tuples = [(3, 4), (5, 2), (9, 1)]  # old list
new_list = [0]
for i, (a, b) in enumerate(list_of_tuples):
  new_list.append(new_list[i] + b)
Run Code Online (Sandbox Code Playgroud)

因此,这是解决方案,但是不必计算新列表的最后一个元素。因此,不需要最后一个元素。

有没有创建新列表的好方法?到目前为止,我的解决方案是使用范围,但看起来不太好:

for i in range(len(list_of_tuples)-1):
  new_list.append(new_list[i] + list_of_tuples[i][1])
Run Code Online (Sandbox Code Playgroud)

我是python的新手,因此不胜感激。

python loops tuples list enumerate

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

如何从元组中间枚举

默认情况下,enumerate()从0开始计数,但如果你给它一个第二个整数参数,它将从该数字开始,但我们如何从count和elem的特定值枚举.例如,我们希望将计数传递为'2',将elem传递为'bar'.两个值都必须传递给枚举函数.

elements = ('foo', 'bar', 'baz')
for count, elem in enumerate(elements):
    print (count, elem)
Run Code Online (Sandbox Code Playgroud)

python enumerate python-3.x

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