我尝试创建一个允许遍历列表的脚本( tmpList = openFiles(cop_node))。此列表包含206个组件的5个其他子列表。 子列表的最后200个组件是字符串编号(每个组件用空格字符分隔的200个字符串编号的行)。
我需要遍历主列表并创建一个包含5个组件的新列表,每个新组件包含浮动的200 * 200值。
我的实际代码是尝试向使用相当于一个子列表的旧代码添加第二个循环。但是python返回错误"索引超出范围"
def valuesFiles(cop_node):
tmpList = openFiles(cop_node)
valueList = []
valueListStr = []*len(tmpList)
for j in range (len(tmpList)):
tmpList = openFiles(cop_node)[j][6:]
tmpList.reverse()
for i in range (len(tmpList)):
splitList = tmpList[i].split(' ')
valueListStr[j].extend(splitList)
#valueList.append(float(valueListStr[j][i]))
return(valueList)
答案 0 :(得分:2)
valueListStr = []*len(tmpList)
不会按照您的想法执行操作:
valueListStr = [[] for _ in range(len(tmpList))]
这将创建一个列表列表:
In [9]: valueListStr = [] * i
In [10]: valueListStr
Out[10]: []
In [11]: valueListStr = [[] for _ in range(i)]
In [12]: valueListStr
Out[12]: [[], [], [], []]
那么为什么你会因为valueListStr[j].extend(splitList)
而收到错误,你就无法索引一个空列表。
您实际上似乎没有在任何地方返回列表,因此我认为您实际上想要实际返回它,您也可以根据需要在循环内创建列表,您也可以循环遍历tmpList
和openFiles(cop_node)
:
def valuesFiles(cop_node):
valueListStr = []
for j in openFiles(cop_node):
tmpList = j[6:]
tmpList.reverse()
tmp = []
for s in tmpList:
tmp.extend(s.split(' '))
valueListStr.append(tmp)
return valueListStr
使用itertools.chain
可以成为:
from itertools import chain
def values_files(cop_node):
return [list(chain(*(s.split(' ') for s in reversed(sub[6:]))))
for sub in openFiles(cop_node)]
答案 1 :(得分:0)
for (Activity singleActivity : activities)
if(singleActivity.violationType == "Warning"){
warningCount++;
println("is it working?");
}
经过一些修改后,我将其作为例外工作:
<RelativeLayout xmlns:android "http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar_actionbar"
layout="@layout/mtoolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar_actionbar">
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.example.rohit.newmastervocab.FloatingFragment"
android:id="@+id/fragment2"
android:layout_alignParentStart="true"
tools:layout="@layout/fragmentfloating"
android:layout_alignTop="@+id/drawer"
android:layout_gravity="center_horizontal|bottom" />
</FrameLayout>
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_below="@+id/toolbar_actionbar"
android:layout_alignParentBottom="true">
<ListView
android:id="@+id/drawerlist1"
android:layout_width="240dp"
android:layout_height="match_parent"
android:entries="@array/navigation_items"
android:background="#F3F6C8"
android:layout_gravity="start">
</ListView>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
我不明白为什么,但第一个循环语句不起作用。最后,我有空列表,如:[[],[],[],[],[]]。这就是我改变开头的原因。最后我将字符串转换为浮点数。