我想知道在列表列表中提取每个子列表的第一项并将其附加到新列表的最佳方法是什么.所以,如果我有:
lst = [[a,b,c], [1,2,3], [x,y,z]]
Run Code Online (Sandbox Code Playgroud)
我想拉出一个,1和x并从中创建一个单独的列表.
我试过了:
lst2.append(x[0] for x in lst)
Run Code Online (Sandbox Code Playgroud) 我试图修改这个列出重复项的定义,以便列出重复值的索引.另外,我希望它列出所有重复项,这意味着a = [1,2,3,2,1,5,6,5,5,5]的结果将是duplicate_indexes = [3,4,7] ,8,9]这是定义:
def list_duplicates(seq):
seen = set()
seen_add = seen.add
# adds all elements it doesn't know yet to seen and all other to seen_twice
seen_twice = set( x for x in seq if x in seen or seen_add(x) )
# turn the set into a list (as requested)
return list( seen_twice )
a = [1,2,3,2,1,5,6,5,5,5]
list_duplicates(a) # yields [1, 2, 5]
Run Code Online (Sandbox Code Playgroud) 我有一个C#类,如下所示:
public class BarChart
{
public BarData BarChartData;
public BarStyle BarChartStyle;
public BarChart(BarData data, BarStyle style)
{
this.BarChartData = data;
this.BarChartStyle = style;
}
string _uniqueName;
public string UniqueName
{
get { return this._uniqueName; }
set { this._uniqueName = value; }
}
string _rowNumber;
public string RowNumber
{
get { return this._rowNumber; }
set { this._rowNumber = value; }
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个名为Chart
具有BarChart类所具有的所有属性的类.例如:
Chart someChart = new Chart(BarChart);
string name = someChart.UniqueName
Run Code Online (Sandbox Code Playgroud)
我对C#比较陌生,继承的概念对我来说有点陌生.在一天结束时,我将有多种不同的图表类型,如LineChart,BarChart等,但我也希望能够移动它们并按如下方式对它们进行排序:
List<Chart> groupedCharts = listOfCharts
.GroupBy(u => u.RowNumber) …
Run Code Online (Sandbox Code Playgroud) 我使用编辑器脚本覆盖了一些材料资产,材料很好地覆盖了.我可以看到新材料属性被应用,当我点击单个材料时,我可以看到应用了新的纹理等.但是当我点击播放时,我的素材重置为预编辑状态,当我点击CTR + S时会发生同样的事情.我的材料都重新回到原来的样子.
如何将更改保存到数据库并在我点击播放时保持不变?
using UnityEngine;
using UnityEditor;
using Newtonsoft.Json;
using Unify.Utilities;
using System.Collections.Generic;
using System;
using System.IO;
public class ProcessMaterials : MonoBehaviour
{
[MenuItem("Unify/ProcessMaterials")]
static void UnifyProcessMaterials()
{
ImportTextures();
ApplyMaterials();
}
private static void ImportTextures()
{
// check if folder exists and create one if not
if (!AssetDatabase.IsValidFolder("Assets/Resources"))
{
AssetDatabase.CreateFolder("Assets", "Resources");
}
// load settings file
TextAsset ta = Resources.Load("UnifySettings") as TextAsset;
string json = ta.text;
List<List<UnifyObject>> unifyObj = JsonConvert.DeserializeObject<List<List<UnifyObject>>>(json);
List<UnifyObject> allMats = unifyObj[3];
// copy textures over to …
Run Code Online (Sandbox Code Playgroud) 有没有办法最小化分组水平条形图中范围之间的填充?
我正在为AngularJS构建一个水平条形图指令,目前我非常接近,但这是我不太满意的间距.如果有更好的方法来构建垂直范围,我将非常感谢任何提示.到目前为止,这是我的结果:
angular.module('MissionControlApp').directive('d3GroupedHorizontalBarChart2', ['d3', '$timeout', function(d3, $timeout) {
return {
restrict: 'E',
scope: {
data: '=',
onClick: '&d3OnClick'
},
link: function(scope, ele) {
var refreshScope = function() {
scope.$apply();
};
var svg = d3.select(ele[0])
.append("svg")
.attr("width", "100%");
// on window resize, re-render d3 canvas
window.onresize = function() {
return scope.$apply();
};
scope.$watch(function(){
return angular.element(window)[0].innerWidth;
}, function(){
return scope.render(scope.data);
}
);
// watch for data changes and re-render
scope.$watch("data", function(newVals) {
if(!newVals) return;
return scope.render(newVals);
}, true);
// define render function …
Run Code Online (Sandbox Code Playgroud) 我确信之前可能已经提出过这个问题,但我似乎无法找到正确的答案.如果我有两个清单
_list1 = ["keyName", "test1", "test2"]
_list2 = ["keyName", "test2", "test1"]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用_list1重新排列_list2中的元素,以便它们完全匹配顺序.最干净的方法是什么?期望的输出:
_list1 = ["keyName", "test1", "test2"]
_list2 = ["keyName", "test1", "test2"]
Run Code Online (Sandbox Code Playgroud)
我很抱歉,如果这是重复但到目前为止我只能找到数字列表的答案和使用zipped sorted()方法.
如果_list2是列表列表怎么办?
_list2 = [["test1", "test2", "keyName"], ["test2", "test1", "keyName"]]
Run Code Online (Sandbox Code Playgroud)
期望的输出:
_list2 = [["keyName", "test1", "test2"], ["keyName", "test1", "test2"]]
Run Code Online (Sandbox Code Playgroud)
还有一个如果:如果我想使用_list1作为键对任何其他对象列表进行排序,该怎么办?
_list2 = [[object1, object2, object3], [object1, object2, object3]]
Run Code Online (Sandbox Code Playgroud)
哪里:
object1.Name = "keyName"
object3.Name = "test1"
object2.Name = "test2"
Run Code Online (Sandbox Code Playgroud)
所以有效地我会期望输出:
_list2 = [[object1, object3, objec1], [object1, object3, objec1]]
Run Code Online (Sandbox Code Playgroud)
那可能吗?
是否有更多Pythonic方法来定义此功能?
def idsToElements(ids):
elements = []
for i in ids:
elements.append(doc.GetElement(i))
return elements
Run Code Online (Sandbox Code Playgroud)
也许它可能与列表理解.我基本上希望获取一个id列表,并将它们更改为比定义函数更简单的元素列表.
我有一份清单清单:
lst1 = [["(a)", "(b)", "(c)"],["(d)", "(e)", "(f)", "(g)"]]
Run Code Online (Sandbox Code Playgroud)
我想迭代每个元素并对它们执行一些字符串操作,例如:
replace("(", "")
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法迭代列表:
for l1 in lst1:
for i in l1:
lst2.append(list(map(str.replace("(", ""), l1)))
Run Code Online (Sandbox Code Playgroud)
我希望out结果与原始列表列表相同但没有括号.此外,我正在寻找一种编辑列表列表的方法,而不是这个问题的具体解决方案.
谢谢,
我试图定义一个在Windows窗体上填充ComboBox控件的通用方法.我通常使用Dictionary来填充我的组合框,将它们绑定到数据源.由于我有一些,我想创建一个方法,我可以调用键,值对的任意组合.这是我的尝试:
private void PopulateDropdown(ComboBox control, Dictionary<Type, Type> dict)
{
if (dict.Count > 0)
{
control.DataSource = new BindingSource(dict, null);
control.DisplayMember = "Key";
control.ValueMember = "Value";
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够这样称呼它:
PopulateDropdown(cbPrinters, this.inputData.Printers);
其中 this.inputData.Printers
是一个字典,键/值类型为字符串,字符串,但我也有其他组合,如字符串,int或字符串,对象.
我收到一个错误,无法将字符串,字符串转换为类型,类型.我怎样才能解决这个问题?
python ×5
c# ×4
list ×4
adobe ×1
css ×1
d3.js ×1
dictionary ×1
duplicates ×1
html ×1
indexing ×1
inheritance ×1
nested ×1
nested-lists ×1
printing ×1
sorting ×1